39 Commits
v4.2 ... v4.4

Author SHA1 Message Date
EthanDeng
81bf10a58b fix dates 2022-08-15 12:57:50 +08:00
EthanDeng
94152955a2 fix comma 2022-08-15 12:53:35 +08:00
EthanDeng
d7febb69f7 update readme 2022-08-15 12:49:30 +08:00
EthanDeng
85176416ad update document 2022-08-15 12:36:42 +08:00
EthanDeng
4c9ca031d8 remove gitee 2022-08-12 10:43:26 +08:00
EthanDeng
4cc89482f8 Merge branch 'dev' of github.com:ElegantLaTeX/ElegantBook into dev 2022-08-12 10:32:32 +08:00
EthanDeng
f91390ddfc merge 2022-08-12 10:32:15 +08:00
syvshc
35f058868e fix the patch for hyperref before 2022/05/16 2022-06-06 23:07:45 +08:00
syvshc
4949004371 为兼容 2022/05/16 前的 hyperref 增加判断 2022-06-05 04:47:53 +08:00
syvshc
ccb5464463 将 \section 中的 \lstinline 改为 \texttt, 消除 overfull box 警告 2022-06-02 23:44:20 +08:00
syvshc
b1585deeb9 将 scheme=chinese 时的“第1章”改为“第一章” 2022-05-28 03:20:26 +08:00
syvshc
48f19691fc v4.4 pre
* 重要改动:提供了一个定义定理类环境的命令 \elegantnewtheorem;
* 重要改动:为所有内置定理类环境提供了带星号的版本,带星号的定理类环境不会编号;fix #167
* 将 TeX Gyre Termes 改为 TeX Gyre TermesX,使英文部分字形与 newtx
  系列宏包更相近;
* 重写了内置定理类环境的实现方法。
2022-05-25 22:55:09 +08:00
syvshc
5b410a1cff 修复对编译的判断, 修改英文字体为 TG TermesX 2022-05-06 13:23:20 +08:00
syvshc
3f7c85e5c7 fix #194 2022-05-06 12:40:09 +08:00
syvshc
5c0f54819a fix: 🐛 修复单独使用 newtxmath 宏包时的 op, \mathrm/bf/it 时的字体错误
 Closes: #196
2022-05-05 14:01:34 +08:00
syvshc
81a25970e8 fix: 🐛 fix a bug when \label contains =
 Closes: #194
2022-04-30 11:53:54 +08:00
syvshc
63d0dda991 fix typo: lsset -> lstset 2022-04-29 03:52:32 +08:00
EthanDeng
921777db03 remove defbib 2022-04-21 12:51:31 +08:00
EthanDeng
3c6c0f163c fix hyperref color back to winered 2022-04-18 18:50:03 +08:00
EthanDeng
b3108df9c2 confirm the bug fixed 2022-04-18 18:41:14 +08:00
EthanDeng
083483f7b5 error 2022-04-18 18:33:20 +08:00
EthanDeng
b1f7d7b30d tcb theorem 2022-04-18 18:31:16 +08:00
Dongsheng Deng
db7fd517dd Merge pull request #190 from syvshc/bugfix
compatibility with tcb theorem style
2022-04-18 18:29:16 +08:00
syvshc
6f2173674f update theorem-like environment introduction 2022-04-18 17:32:06 +08:00
syvshc
d11253214e fix thm color 2022-04-18 17:26:55 +08:00
syvshc
943493a29c compatibility with tcb theorem style 2022-04-18 14:43:36 +08:00
EthanDeng
61b911ebd6 update readme 2022-04-09 12:33:43 +08:00
EthanDeng
02bc4225fb remove the redundant imgs 2022-04-09 12:25:54 +08:00
EthanDeng
c0bdf12916 fix minor chagne 2022-04-09 12:08:16 +08:00
EthanDeng
4a764ff1f2 merge 2022-04-09 12:06:53 +08:00
EthanDeng
3545a46449 remove option founder 2022-04-09 12:05:25 +08:00
EthanDeng
7f1dedd79f version 4.3 2022-04-09 12:01:59 +08:00
EthanDeng
7506140be9 update git ignore 2022-04-08 17:29:06 +08:00
EthanDeng
f9b2d0eb80 pre 2022-04-08 17:25:12 +08:00
EthanDeng
d2c10a1d02 version 4.3 pre release 2022-04-08 17:22:27 +08:00
EthanDeng
3f77eb1adc Merge branch 'dev' of github.com:ElegantLaTeX/ElegantBook into dev 2022-04-07 21:48:17 +08:00
EthanDeng
4955628d8c -f 2022-04-07 21:46:54 +08:00
EthanDeng
acc71ecea2 update sansfont 2022-04-07 21:45:40 +08:00
EthanDeng
eb233e4309 update font settings 2022-04-07 21:33:50 +08:00
7 changed files with 796 additions and 340 deletions

1
.gitignore vendored
View File

@@ -11,6 +11,7 @@
*.cb *.cb
*.cb2 *.cb2
.*.lb .*.lb
.DS_Store
clean.bat clean.bat
elegant*-cn.pdf elegant*-cn.pdf
elegant*-en.pdf elegant*-en.pdf

View File

@@ -1,34 +0,0 @@
<!-- Author : Dongsheng Deng & Liam Huang-->
<!-- Program Email: elegantlatex2e@gmail.com -->
[Homepage](https://elegantlatex.org/) | [Github](https://github.com/ElegantLaTeX/ElegantBook) | [CTAN](https://ctan.org/pkg/elegantbook) | [Download](https://github.com/ElegantLaTeX/ElegantBook/releases) | [Wiki](https://github.com/ElegantLaTeX/ElegantBook/wiki) | [Weibo](https://weibo.com/elegantlatex)
![License](https://img.shields.io/ctan/l/elegantbook.svg) ![CTAN Version](https://img.shields.io/ctan/v/elegantbook.svg) ![Github Version](https://img.shields.io/github/release/ElegantLaTeX/ElegantBook.svg) ![Repo Size](https://img.shields.io/github/repo-size/ElegantLaTeX/ElegantBook.svg)
---
# ElegantBook 优美的 LaTeX 书籍模板
ElegantBook 是为 LaTeX 书籍写作而设计的模板,由 [Dongsheng Deng](https://ddswhu.me/) 和 [Liam Huang](https://liam.page/) 创立,模板创立的初衷是方便我们自己做笔记 :smile:。如果你有其他问题、建议或者报告 bug可以提交 issues 或者给我们发邮件elegantlatex2e@gmail.com。QQ 用户交流群692108391欢迎加入。
## 重要提示
**重要提示**ElegantLaTeX 项目 **不接受** 任何非预授权的提交pull requests
## 致谢
特别感谢 [sikouhjw](https://github.com/sikouhjw) 长期以来对于 Github 上 issue 的快速回应,以及各个社区论坛对于 ElegantLaTeX 相关问题的回复。
特别感谢 ChinaTeX 以及 [LaTeX 工作室](http://www.latexstudio.net/)对于本系列模板的大力宣传与推广。
如果你喜欢我们的模板,你可以在 Github 上收藏我们的模板。
## 协议
本模板发布遵循 LaTeX 项目公共许可证 1.3 c 或更高版本。如果是衍生作品请务必加入协议声明和模板信息github、CTAN 地址)。
## 衍生作
+ [ElegantBookdown](https://github.com/XiangyunHuang/ElegantBookdown)[XiangyunHuang](https://github.com/XiangyunHuang) 开发并维护的基于 ElegantBook 的 Bookdown 模板。
+ [bookdownplus](https://github.com/pzhaonet/bookdownplus):应网友要求,[pzhaonet](https://github.com/pzhaonet) 在 bookdownplus 收录了 ElegantPaper 模板,并为 Mac 做了字体适配。
+ [PanBook](https://github.com/annProg/PanBook)[annProg](https://github.com/annProg) 开发并维护的基于 Markdown 写作的工作流,收录了 ElegantBook 和 ElegantPaper 模板。

View File

@@ -1,34 +1,37 @@
<!-- Author : Dongsheng Deng & Liam Huang--> <!-- Author : Dongsheng Deng & Liam Huang-->
<!-- Program Email: elegantlatex2e@gmail.com --> <!-- Program Email: elegantlatex2e@gmail.com -->
[Homepage](https://elegantlatex.org/) | [Github](https://github.com/ElegantLaTeX/ElegantBook) | [CTAN](https://ctan.org/pkg/elegantbook) | [Download](https://github.com/ElegantLaTeX/ElegantBook/releases) | [Wiki](https://github.com/ElegantLaTeX/ElegantBook/wiki) | [Weibo](https://weibo.com/elegantlatex) [Homepage](https://elegantlatex.org/) | [Github](https://github.com/ElegantLaTeX/ElegantBook) | [CTAN](https://ctan.org/pkg/elegantbook) | [Download](https://github.com/ElegantLaTeX/ElegantBook/releases) |
![License](https://img.shields.io/ctan/l/elegantbook.svg) ![CTAN Version](https://img.shields.io/ctan/v/elegantbook.svg) ![Github Version](https://img.shields.io/github/release/ElegantLaTeX/ElegantBook.svg) ![Repo Size](https://img.shields.io/github/repo-size/ElegantLaTeX/ElegantBook.svg) ![License](https://img.shields.io/ctan/l/elegantbook.svg) ![CTAN Version](https://img.shields.io/ctan/v/elegantbook.svg) ![Github Version](https://img.shields.io/github/release/ElegantLaTeX/ElegantBook.svg) ![Repo Size](https://img.shields.io/github/repo-size/ElegantLaTeX/ElegantBook.svg)
------- -------
# ElegantBook: An Elegant LaTeX Template for Books # ElegantBook: 优美的 LaTeX 书籍模板 An Elegant LaTeX Template for Books
ElegantBook is designed for writing books, created by [Dongsheng Deng](https://ddswhu.me/) and [Liam Huang](https://liam.page/). Just enjoy it! If you have any questions, suggestions or bug reports, you can create issues or contact us at elegantlatex2e@gmail.com. ElegantBook 是为 LaTeX 书籍写作而设计的模板,由 [Ethan Deng](https://github.com/EthanDeng) 和 [Liam Huang](https://github.com/Liam0205) 创立,现在主要由 [Ethan Deng](https://github.com/EthanDeng)、[乙醇](https://github.com/syvshc)和[死抠](https://github.com/sikouhjw)维护。如果你有其他问题、建议或者报告 bug可以提交 issues 或者加入我们的 QQ 用户交流群692108391。
## Important Notes ElegantBook is designed for writing books, created by [Ethan Deng](https://github.com/EthanDeng) and [Liam Huang](https://github.com/Liam0205), and maintained by [Ethan Deng](https://github.com/EthanDeng), [syvshc](https://github.com/syvshc) and [sikouhjw](https://github.com/sikouhjw). Just enjoy it! If you have any questions, suggestions or bug reports, you can create issues or contact us at elegantlatex2e@gmail.com.
For some reasons, __unauthorized__ pull requests are **UNACCEPTABLE** since May 20, 2019. For those who want to help revise the templates, submit issues or clone to your own repository to modify under the LPPL-1.3c.
## Acknowledgement
Thank [sikouhjw](https://github.com/sikouhjw) for his quick response to Github issues and continuously support work for ElegantLaTeX.
Thank ChinaTeX and [LaTeX Studio](http://www.latexstudio.net/) for their promotion.
## License ## 致谢 Acknowledgement
特别感谢 [sikouhjw](https://github.com/sikouhjw) 和 [syvshc](https://github.com/syvshc) 长期以来对于 Github 上 issue 的快速回应,以及各个社区论坛对于 ElegantLaTeX 相关问题的回复。特别感谢 ChinaTeX 以及 [LaTeX 工作室](http://www.latexstudio.net/)对于本系列模板的大力宣传与推广。
Thank [sikouhjw](https://github.com/sikouhjw) and [syvshc](https://github.com/syvshc) for their quick response to Github issues and continuously support work for ElegantLaTeX community. Thank ChinaTeX and [LaTeX Studio](http://www.latexstudio.net/) for their promotion.
## 协议 License
本模板发布遵循 LaTeX 项目公共许可证 1.3 c 或更高版本。
如果是衍生作品请务必加入协议声明和模板信息github、CTAN 地址)。
This work is released under the LaTeX Project Public License, v1.3c or later. This work is released under the LaTeX Project Public License, v1.3c or later.
## Derivative Works ## 衍生品 Derivative Works
+ [ElegantBookdown](https://github.com/XiangyunHuang/ElegantBookdown)[XiangyunHuang](https://github.com/XiangyunHuang) developed a Bookdown template based on ElegantBook. + [ElegantBookdown](https://github.com/XiangyunHuang/ElegantBookdown)[XiangyunHuang](https://github.com/XiangyunHuang) 开发并维护的基于 ElegantBook 的 Bookdown 模板。
+ [bookdownplus](https://github.com/pzhaonet/bookdownplus): maintained by [pzhaonet](https://github.com/pzhaonet). + [bookdownplus](https://github.com/pzhaonet/bookdownplus):应网友要求,[pzhaonet](https://github.com/pzhaonet) 在 bookdownplus 收录了 ElegantPaper 模板,并为 Mac 做了字体适配。
+ [PanBook](https://github.com/annProg/PanBook)a markdown-based writing workflow Developed by [annProg](https://github.com/annProg). + [PanBook](https://github.com/annProg/PanBook)[annProg](https://github.com/annProg) 开发并维护的基于 Markdown 写作的工作流,收录了 ElegantBook 和 ElegantPaper 模板。

View File

@@ -1,15 +1,15 @@
\documentclass[lang=cn,10pt]{elegantbook} \documentclass[lang=cn,10pt,newtx]{elegantbook}
\title{ElegantBook优美的 \LaTeX{} 书籍模板} \title{ElegantBook优美的 \LaTeX{} 书籍模板}
\subtitle{Elegant\LaTeX{} 经典之作} \subtitle{Elegant\LaTeX{} 经典之作}
\author{Ethan Deng \& Liam Huang} \author{Ethan Deng \& Liam Huang}
\institute{Elegant\LaTeX{} Program} \institute{Elegant\LaTeX{} Program}
\date{March 8, 2022} \date{Aug 15, 2022}
\version{4.2} \version{4.4}
\bioinfo{自定义}{信息} \bioinfo{自定义}{信息}
\extrainfo{不要以为抹消过去,重新来过,即可发生什么改变。—— 比企谷八幡} \extrainfo{要让一群人团结起来,需要的不是英明的领导,而是共同的敌人。—— 比企谷八幡}
\setcounter{tocdepth}{3} \setcounter{tocdepth}{3}
@@ -20,8 +20,12 @@
\usepackage{array} \usepackage{array}
\newcommand{\ccr}[1]{\makecell{{\color{#1}\rule{1cm}{1cm}}}} \newcommand{\ccr}[1]{\makecell{{\color{#1}\rule{1cm}{1cm}}}}
% \definecolor{customcolor}{RGB}{32,178,170} % 修改标题页的橙色带
% \colorlet{coverlinecolor}{customcolor} \definecolor{customcolor}{RGB}{32,178,170}
\colorlet{coverlinecolor}{customcolor}
\usepackage{cprotect}
\addbibresource[location=local]{reference.bib} % 参考文献,不要删除
\begin{document} \begin{document}
@@ -34,20 +38,25 @@
\chapter{Elegant\LaTeX{} 系列模板介绍} \chapter{Elegant\LaTeX{} 系列模板介绍}
Elegant\LaTeX{} 项目组致力于打造一系列美观、优雅、简便的模板方便用户使用。目前由 \href{https://github.com/ElegantLaTeX/ElegantNote}{ElegantNote}\href{https://github.com/ElegantLaTeX/ElegantBook}{ElegantBook}\href{https://github.com/ElegantLaTeX/ElegantPaper}{ElegantPaper} 组成,分别用于排版笔记,书籍和工作论文。强烈推荐使用最新正式版本!本文将介绍本模板的一些设置内容以及基本使用方法。如果您有其他问题,建议或者意见,欢迎在 GitHub 上给我们提交 \href{https://github.com/ElegantLaTeX/ElegantBook/issues}{issues} 或者邮件联系我们。 Elegant\LaTeX{} 项目组致力于打造一系列美观、优雅、简便的模板方便用户使用。目前由 \href{https://github.com/ElegantLaTeX/ElegantNote}{ElegantNote}\href{https://github.com/ElegantLaTeX/ElegantBook}{ElegantBook}\href{https://github.com/ElegantLaTeX/ElegantPaper}{ElegantPaper} 组成,分别用于排版笔记,书籍和工作论文。大版本改动较大,请关注版本信息,在未开始使用模板钱,建议直接选择最新正式版本!
我们的联系方式如下,建议加入用户 QQ 群提问,这样能更快获得准确的反馈,加群时请备注 \LaTeX{} 或者 Elegant\LaTeX{} 相关内容。 本文将介绍本模板的一些设置内容以及基本使用方法。如果您有其他问题,建议或者意见,欢迎在 GitHub 上给我们提交 \href{https://github.com/ElegantLaTeX/ElegantBook/issues}{issues} 或者邮件联系我们。我们的联系方式如下,建议加入用户 QQ 群提问,这样能更快获得准确的反馈,加群时请备注 \LaTeX{} 或者 Elegant\LaTeX{} 相关内容。
\begin{itemize} \begin{itemize}
\item 官网:\href{https://elegantlatex.org/}{https://elegantlatex.org/} \item 官网:\href{https://elegantlatex.org/}{https://elegantlatex.org/}
\item GitHub 址:\href{https://github.com/ElegantLaTeX/}{https://github.com/ElegantLaTeX/} \item GitHub 址:\href{https://github.com/ElegantLaTeX/}{https://github.com/ElegantLaTeX/}
\item CTAN 地址:\href{https://ctan.org/pkg/elegantbook}{https://ctan.org/pkg/elegantbook} \item CTAN 地址:\href{https://ctan.org/pkg/elegantbook}{https://ctan.org/pkg/elegantbook}
\item 下载地址:\href{https://github.com/ElegantLaTeX/ElegantBook/releases}{正式发行版}\href{https://github.com/ElegantLaTeX/ElegantBook/archive/master.zip}{最新版} \item 下载地址:\href{https://github.com/ElegantLaTeX/ElegantBook/releases}{正式发行版}\href{https://github.com/ElegantLaTeX/ElegantBook/archive/master.zip}{最新版}
\item 微博Elegant\LaTeX{} \item 微博Elegant\LaTeX{}
\item 微信公众号Elegant\LaTeX{} \item 微信公众号Elegant\LaTeX{}
\item Bilibili\href{https://space.bilibili.com/516479629}{ElegantLaTeX}
\item 用户 QQ 群692108391 \item 用户 QQ 群692108391
\item 邮件:\email{elegantlatex2e@gmail.com} \item 邮件:\email{elegantlatex2e@gmail.com}
\end{itemize} \end{itemize}
\begin{quotation}
\textbf{注意:} 由于 ElegantLaTeX 的模板涉及宏包和设定比较多,不建议没有 \LaTeX{} 基础的用户使用。我们会通过 \href{https://space.bilibili.com/516479629}{B 站}进行直播或者交流分享会,录屏也将发布在该账户下,如果大家在模板的使用上有问题,可以观看视频、加群咨询或者查看模板自带的文档说明(如果安装了 TeX Live可以使用在命令行提示符下运行 \lstinline{texdoc elegantbook} 命令获得模板的说明文档。
\end{quotation}
\section{模板安装与更新} \section{模板安装与更新}
@@ -55,46 +64,56 @@ Elegant\LaTeX{} 项目组致力于打造一系列美观、优雅、简便的模
\subsection{在线使用模板} \subsection{在线使用模板}
我们把三套模板全部上传到 \href{https://www.overleaf.com/}{Overleaf} 上了,网络便利的用户可以直接通过 Overleaf 在线使用我们的模板。使用 Overleaf 的好处是无需安装 \TeX{} Live 2020,可以随时随地访问自己的文件。查找模板,请在 Overleaf 模板库里面搜索 \lstinline{elegantlatex} 即可,你也可以直接访问\href{https://www.overleaf.com/latex/templates?addsearch=elegantlatex}{搜索结果}。选择适当的模板之后,将其 \lstinline{Open as Template},即可把模板存到自己账户下,然后可以自由编辑以及与别人一起协作。更多关于 Overleaf 的介绍和使用,请参考 Overleaf 的\href{https://www.overleaf.com/learn}{官方文档} 我们把三套模板全部上传到 \href{https://www.overleaf.com/}{Overleaf} 上了,网络便利的用户可以直接通过 Overleaf 在线使用我们的模板。使用 Overleaf 的好处是无需安装 \TeX{} Live可以随时随地访问自己的文件。查找模板请在 Overleaf 模板库里面搜索 \lstinline{elegantlatex} 即可,你也可以直接访问\href{https://www.overleaf.com/latex/templates?addsearch=elegantlatex}{搜索结果}。选择适当的模板之后,将其 \lstinline{Open as Template},即可把模板存到自己账户下,然后可以自由编辑以及与别人一起协作。更多关于 Overleaf 的介绍和使用,请参考 Overleaf 的\href{https://www.overleaf.com/learn}{官方文档}
\begin{remark}
Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议使用 \hologo{pdfLaTeX} 编译。
\end{remark}
\subsection{本地免安装使用} \subsection{本地免安装使用}
\textbf{免安装}使用方法如下从 GitHub 或者 CTAN 下载最新版,严格意义上只需要类文件 \lstinline{elegantbook.cls}。然后将模板文件放在你的工作目录下即可使用。这样使用的好处是,无需安装,简便;缺点是,当模板更新之后,你需要手动替换 \lstinline{cls} 文件。 \textbf{免安装}使用方法如下从 GitHub 或者 CTAN 下载最新版,严格意义上只需要类文件 \lstinline{elegantbook.cls}。然后将模板文件放在你的工作目录下即可使用。这样使用的好处是,无需安装,简便;缺点是,当模板更新之后,你需要手动替换 \lstinline{cls} 文件。
\subsection{发行版安装使用} \subsection{发行版安装与更新}
本模板测试环境为 Win10 和 TeX Live 2021如果你刚安装 \TeX{} Live 2021 用户,安装后建议升级全部宏包,升级方法:使用 cmd 运行 \lstinline{tlmgr update --all},如果 tlmgr 需要更新,请使用 cmd 运行 \lstinline{tlmgr update --self},如果更新过程中出现了中断,请改用 \lstinline{tlmgr update --self --all --reinstall-forcibly-removed} 更新。 本模板测试环境为
\begin{enumerate}
\item Win10 + \TeX{} Live 2022
\item Ubuntu 20.04 + \TeX{} Live 2022
\item macOS Monterey + Mac\TeX{} 2022。
\end{enumerate}
\subsection{更新问题} \TeX Live/Mac\TeX{} 的安装请参考啸行的\href{https://github.com/OsbertWang/install-latex-guide-zh-cn/releases/}{一份简短的关于安装 \LaTeX{} 安装的介绍}
如果使用 \lstinline{tlshell} 无法更新模板,请使用命令行全部更新全部宏包或者使用免安装的方法使用本模板。 安装 \TeX{} Live 之后,安装后建议升级全部宏包,升级方法:使用 cmd 或 terminal 运行 \lstinline{tlmgr update --all},如果 tlmgr 需要更新,请使用 cmd 运行 \lstinline{tlmgr update --self},如果更新过程中出现了中断,请改用 \lstinline{tlmgr update --self --all --reinstall-forcibly-removed} 更新,也即
通过命令行(管理员权限)输入下面的命令对 tlmgr 自身和全部宏包进行更新。
\begin{lstlisting} \begin{lstlisting}
tlmgr update --self tlmgr update --self
tlmgr update --all tlmgr update --all
tlmgr update --self --all --reinstall-forcibly-removed
\end{lstlisting} \end{lstlisting}
更多的内容请参考 \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \TeX{} distribution?} 更多的内容请参考 \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \TeX{} distribution?}
\subsection{其他发行版本} \subsection{其他发行版本}
由于宏包版本问题,本模板不支持 C\TeX{} 套装,请务必安装 TeX Live。更多关于 \TeX{} Live 的安装使用以及 C\TeX{}\TeX{} Live 的兼容、系统路径问题,请参考官方文档以及啸行的\href{https://github.com/OsbertWang/install-latex-guide-zh-cn/releases/}{一份简短的关于安装 \LaTeX{} 安装的介绍} 由于宏包版本问题,本模板不支持 C\TeX{} 套装,请务必安装 TeX Live/Mac\TeX{}。更多关于 \TeX{} Live 的安装使用以及 C\TeX{}\TeX{} Live 的兼容、系统路径问题,请参考官方文档以及啸行的\href{https://github.com/OsbertWang/install-latex-guide-zh-cn/releases/}{一份简短的关于安装 \LaTeX{} 安装的介绍}
\section{关于提交} \section{关于提交}
出于某些因素的考虑Elegant\LaTeX{} 项目自 20195 20 日开始,\textbf{不再接受任何非作者预约性质的提交}pull request)!如果你想改进模板,你可以给我们提交 issues或者可以在遵循协议LPPL-1.3c)的情况下,克隆到自己仓库下进行修改 由于精力有限,本人维护模板的时间并不多,考虑到模板的用户还挺多,本模板自 20228开始开放特性提交features pull requests不过在提交之前请务必在 issue 区将问题、解决方式以及对应的示例(最简单的使用示例)写清楚,我们会根据 issue 的信息,接受合适的提交
\section{赞助}
如果您非常喜爱我们的模板你还可以选择赞助的方式支持这个项目赞助主要用于网站域名和服务器的购买、QQ 用户群的维护以及对于管理员的奖励。赞赏费用的使用解释权归 ElegantLaTeX/EthanDeng 所有,不接受监督。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.5\textwidth]{donate.jpg}
\end{figure}
\chapter{ElegantBook 设置说明} \chapter{ElegantBook 设置说明}
本模板基于基础的 book 文类,所以 book 的选项对于本模板也是有效的(纸张无效,因为模板有设备选项)。默认编码为 UTF-8推荐使用 \TeX{} Live 编译。本文编写环境为 Win10 (64bit) + \TeX{} Live 2021英文支持 \hologo{pdfLaTeX},中文仅支持 \hologo{XeLaTeX} 编译。 本模板基于基础的 book 文类,所以 book 的选项对于本模板也是有效的(纸张无效,因为模板有设备选项)。默认编码为 UTF-8推荐使用 \TeX{} Live 编译。
\section{语言模式} \section{语言模式}
本模板内含两套基础语言环境 \lstinline{lang=cn}\lstinline{lang=en}。改变语言环境会改变图表标题的引导词(图,表),文章结构词(比如目录,参考文献等),以及定理环境中的引导词(比如定理,引理等)。不同语言模式的启用如下: 本模板内含两套基础语言环境 \lstinline{lang=cn}\lstinline{lang=en}。改变语言环境会改变图表标题的引导词(图,表),文章结构词(比如目录,参考文献等),以及定理环境中的引导词(比如定理,引理等)。不同语言模式的启用如下:
@@ -103,7 +122,7 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\documentclass[lang=cn]{elegantbook} \documentclass[lang=cn]{elegantbook}
\end{lstlisting} \end{lstlisting}
除模板自带的两套语言设定之外,由网友提供的其他语言环境设置如下: 除模板自带的两套语言设定之外,由\textbf{网友}提供的其他语言环境设置如下:
\begin{itemize} \begin{itemize}
\item\href{https://github.com/VincentMVV}{VincentMVV} 提供的意大利语翻译 \lstinline{lang=it},相关讨论见 \href{https://github.com/ElegantLaTeX/ElegantBook/issues/85}{Italian translation} \item\href{https://github.com/VincentMVV}{VincentMVV} 提供的意大利语翻译 \lstinline{lang=it},相关讨论见 \href{https://github.com/ElegantLaTeX/ElegantBook/issues/85}{Italian translation}
\item\href{https://github.com/abfek66}{abfek66} 提供的法语翻译 \lstinline{lang=fr},相关讨论见 \href{https://github.com/ElegantLaTeX/ElegantBook/issues/85}{Italian translation} \item\href{https://github.com/abfek66}{abfek66} 提供的法语翻译 \lstinline{lang=fr},相关讨论见 \href{https://github.com/ElegantLaTeX/ElegantBook/issues/85}{Italian translation}
@@ -137,6 +156,7 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\documentclass[color=green]{elegantbook} \documentclass[color=green]{elegantbook}
\end{lstlisting} \end{lstlisting}
\begin{table}[htbp] \begin{table}[htbp]
\caption{ElegantBook 模板中的颜色主题\label{tab:color thm}} \caption{ElegantBook 模板中的颜色主题\label{tab:color thm}}
\centering \centering
@@ -178,7 +198,7 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\end{table} \end{table}
如果需要自定义颜色的话请选择 \lstinline{nocolor} 选项或者使用 \lstinline{color=none},然后在导言区定义 structurecolor、main、second、third 颜色,具体方法如下: 如果需要自定义颜色的话请选择 \lstinline{nocolor} 选项或者使用 \lstinline{color=none},然后在导言区定义 structurecolor、main、second、third 颜色,具体方法如下:
\begin{lstlisting}[tabsize=4]] \begin{lstlisting}[tabsize=4]
\definecolor{structurecolor}{RGB}{0,0,0} \definecolor{structurecolor}{RGB}{0,0,0}
\definecolor{main}{RGB}{70,70,70} \definecolor{main}{RGB}{70,70,70}
\definecolor{second}{RGB}{115,45,2} \definecolor{second}{RGB}{115,45,2}
@@ -195,13 +215,13 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\centering \centering
\caption{封面元素信息} \caption{封面元素信息}
\begin{tabular}{p{0.07\textwidth}p{0.15\textwidth}|p{0.07\textwidth}p{0.15\textwidth}|p{0.07\textwidth}p{0.15\textwidth}} \begin{tabular}{p{0.07\textwidth}p{0.15\textwidth}|p{0.07\textwidth}p{0.15\textwidth}|p{0.07\textwidth}p{0.15\textwidth}}
\toprule \hline
信息 & 命令 & 信息 & 命令 & 信息 & 命令 \\ 信息 & 命令 & 信息 & 命令 & 信息 & 命令 \\
\midrule \hline
标题 & \lstinline|\title| & 副标题 & \lstinline|\subtitle| & 作者 & \lstinline|\author| \\ 标题 & \lstinline|\title| & 副标题 & \lstinline|\subtitle| & 作者 & \lstinline|\author| \\
机构 & \lstinline|\institute| & 日期 & \lstinline|\date| & 版本 & \lstinline|\version| \\ 机构 & \lstinline|\institute| & 日期 & \lstinline|\date| & 版本 & \lstinline|\version| \\
箴言 & \lstinline|\extrainfo| & 封面图 & \lstinline|\cover| & 徽标 & \lstinline|\logo| \\ 箴言 & \lstinline|\extrainfo| & 封面图 & \lstinline|\cover| & 徽标 & \lstinline|\logo| \\
\bottomrule \hline
\end{tabular} \end{tabular}
\end{table} \end{table}
@@ -256,38 +276,65 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\item \textit{定理类环境},包含标题和内容两部分,全部定理类环境的编号均以章节编号。根据格式的不同分为 3 种 \item \textit{定理类环境},包含标题和内容两部分,全部定理类环境的编号均以章节编号。根据格式的不同分为 3 种
\begin{itemize} \begin{itemize}
\item \textcolor{main}{\textbf{definition}} 环境,颜色为 \textcolor{main}{main} \item \textcolor{main}{\textbf{definition}} 环境,颜色为 \textcolor{main}{main}
\item \textcolor{second}{\textbf{theorem、lemma、corollary}} 环境,颜色为 \textcolor{second} {second} \item \textcolor{second}{\textbf{theorem、lemma、corollary、axiom、postulate}} 环境,颜色为 \textcolor{second} {second}
\item \textcolor{third}{\textbf{proposition}} 环境,颜色为 \textcolor{third}{third} \item \textcolor{third}{\textbf{proposition}} 环境,颜色为 \textcolor{third}{third}
\end{itemize} \end{itemize}
\item \textit{示例类环境},有 \textbf{example、problem、exercise} 环境(对应于例、例题、练习),自动编号,编号以章节为单位,其中 \textbf{exercise} 有提示符。 \item \textit{示例类环境},有 \textbf{example、problem、exercise} 环境(对应于例、例题、练习),自动编号,编号以章节为单位,其中 \textbf{exercise} 有提示符。
\item \textit{提示类环境},有 \textbf{note} 环境,特点是:无编号,有引导符。 \item \textit{提示类环境},有 \textbf{note} 环境,特点是:无编号,有引导符。
\item \textit{结论类环境},有 \textbf{conclusion、assumption、property、remark、solution} 环境\footnote{本模板还添加了一个 result 选项,用于隐藏 \lstinline{solution}\lstinline{proof} 环境,默认为显示(\lstinline{result=answer}),隐藏使用 \lstinline{result=noanswer}},三者均以粗体的引导词为开头,和普通段落格式一致。 \item \textit{结论类环境},有 \textbf{conclusion、assumption、property、remark、solution} 环境\footnote{本模板还添加了一个 \lstinline|result| 选项,用于隐藏 \lstinline{solution}\lstinline{proof} 环境,默认为显示(\lstinline{result=answer}),隐藏使用 \lstinline{result=noanswer}},三者均以粗体的引导词为开头,和普通段落格式一致。
\end{itemize} \end{itemize}
其中,定理类环境均有带星号的版本:\textcolor{main}{\textbf{definition*}}\textcolor{second}{\textbf{theorem*}}\textcolor{second}{\textbf{lemma*}}\textcolor{second}{\textbf{corollary*}}\textcolor{second}{\textbf{axiom*}}\textcolor{second}{\textbf{postulate*}}\textcolor{third}{\textbf{proposition*}},带星号的定理类环境不会编号。
\subsection{定理类环境的使用} \subsection{定理类环境的使用}
由于本模板使用了 \lstinline{tcolorbox} 宏包来定制定理类环境,所以和普通的定理环境的使用有些许区别,定理的使用方法如下: \subsubsection{\texttt{fancy} 模式}
\lstinline{fancy} 模式下使用了 \lstinline{tcolorbox} 宏包来定制定理类环境,所以和普通的定理环境的使用有些许区别,有编号定理的使用方法如下:
\begin{lstlisting} \begin{lstlisting}
% 有名字,有标签
\begin{theorem}{theorem name}{label} \begin{theorem}{theorem name}{label}
The content of theorem. 这是一个有名字和标签的定理。
\ref{thm:label} 来引用这个定理。
\end{theorem}
% 无名字,有标签
\begin{theorem}{}{label no name}
这是一个没有名字但是有标签的定理。
\ref{thm:label no name} 来引用这个定理。
\end{theorem}
% 有名字,无标签
\begin{theorem}{theorem name}{}
这是一个有名字但是没有标签的定理。
这个定理不能被引用。
最后的 {} 可以省略不写。
\end{theorem}
% 无名字,无标签
\begin{theorem}{}{}
这是一个没有名字也没有标签的定理。
这个定理不能被引用。
两个 {} 均可以省略不写。
\end{theorem} \end{theorem}
\end{lstlisting} \end{lstlisting}
第一个选项 \lstinline{theorem name} 是定理的名字,第二个选项 \lstinline{label} 是交叉引用时所用到的标签,交叉引用的方法为 \verb|\ref{thm:label}|。请注意,交叉引用时必须加上前缀 \lstinline{thm:} 第一个选项 \lstinline{theorem name} 是定理的名字,如果定理没有名字请使用 \lstinline|{}|\cprotect\footnote{除非这个定理也没有标签,否则不能省略。}第二个选项 \lstinline{label} 是交叉引用时所用到的标签,如果定理没有标签,可以不写 \lstinline|{label}| 或使用 \lstinline|{}|。交叉引用的方法为 \lstinline|\ref{thm:label}|。请注意,交叉引用时必须加上前缀 \lstinline{thm:}其他相同用法的定理类环境见表 \ref{tab:theorem-class}
在用户多次反馈下4.x 之后,引入了原生定理的支持方式,也就是使用可选项方式 不编号的定理使用方法如下
\begin{lstlisting} \begin{lstlisting}
\begin{theorem}[theorem name] \label{thm:theorem-label} % 有名字
The content of theorem. \begin{theorem*}{theorem name}
\end{theorem} 这是一个不编号的有名字的定理。
% or 这个定理不能被引用。
\begin{theorem} \label{thm:theorem-withou-name} \end{theorem*}
The content of theorem without name. % 无名字
\end{theorem} \begin{theorem*}{}
这是一个不编号且没有名字的定理。
最后的 {} 可以省略不写。
这个定理不能被引用。
\end{theorem*}
\end{lstlisting} \end{lstlisting}
其中的选项 \lstinline{theorem name} 是定理的名字,如果没有名字可以不写 \lstinline|{theorem name}| 或使用 \lstinline|{}|
其他相同用法的定理类环境有:
\begin{table}[htbp] \begin{table}[htbp]
\centering \centering
@@ -298,6 +345,8 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\midrule \midrule
definition & label & def & \lstinline|\ref{def:label}| \\ definition & label & def & \lstinline|\ref{def:label}| \\
theorem & label & thm & \lstinline|\ref{thm:label}| \\ theorem & label & thm & \lstinline|\ref{thm:label}| \\
postulate & label & pos & \lstinline|\ref{pos:label}| \\
axiom & label & axi & \lstinline|\ref{axi:label}|\\
lemma & label & lem & \lstinline|\ref{lem:label}| \\ lemma & label & lem & \lstinline|\ref{lem:label}| \\
corollary & label & cor & \lstinline|\ref{cor:label}| \\ corollary & label & cor & \lstinline|\ref{cor:label}| \\
proposition & label & pro & \lstinline|\ref{pro:label}| \\ proposition & label & pro & \lstinline|\ref{pro:label}| \\
@@ -306,8 +355,60 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\label{tab:theorem-class}% \label{tab:theorem-class}%
\end{table}% \end{table}%
% \subsection{算法环境} 在用户多次反馈下,在 4.1 版本引入了原生定理的支持方式,使用方法如下:
\begin{lstlisting}
% 有名字,有标签
\begin{theorem}[theorem name]\label{thm:label}
这是一个有名字和标签的定理。
\ref{thm:label} 来引用这个定理。
\end{theorem}
% 无名字,有标签
\begin{theorem}\label{thm:label no name}
这是一个没有名字但是有标签的定理。
\ref{thm:label no name} 来引用这个定理。
\end{theorem}
% 有名字,无标签
\begin{theorem}[theorem name]
这是一个有名字但是没有标签的定理。
这个定理不能被引用。
\end{theorem}
% 无名字,无标签
\begin{theorem}
这是一个没有名字也没有标签的定理。
这个定理不能被引用。
\end{theorem}
\end{lstlisting}
这时引用不需要加前缀,\lstinline{\ref} 中的内容与 \lstinline{\label} 中的内容相同,换句话说,这时的使用方法与使用原生定理环境的时候几乎相同。
\subsubsection{\texttt{simple} 模式}
\lstinline{simple} 模式下使用了 \lstinline{amsthm} 宏包,定理类环境使用方法与原生一致,定理的使用方法如下:
\begin{lstlisting}
% 有名字,有标签
\begin{theorem}[theorem name]\label{thm:label}
这是一个有名字和标签的定理。
\ref{thm:label} 来引用这个定理。
\end{theorem}
% 无名字,有标签
\begin{theorem}\label{thm:label no name}
这是一个没有名字但是有标签的定理。
\ref{thm:label no name} 来引用这个定理。
\end{theorem}
% 有名字,无标签
\begin{theorem}[theorem name]
这是一个有名字但是没有标签的定理。
这个定理不能被引用。
\end{theorem}
% 无名字,无标签
\begin{theorem}
这是一个没有名字也没有标签的定理。
这个定理不能被引用。
\end{theorem}
\end{lstlisting}
% \subsection{算法环境}
% \begin{algorithm}\label{alg:test} % \begin{algorithm}\label{alg:test}
% \Input{A bitmap $I$ of size $w \times l$} % \Input{A bitmap $I$ of size $w \times l$}
@@ -335,6 +436,97 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
% \caption{disjoint decomposition}\label{algo_disjdecomp} % \caption{disjoint decomposition}\label{algo_disjdecomp}
% \end{algorithm} % \end{algorithm}
\subsection{修改计数器}
当前定理等环境计数器按章计数,如果想修改定理类环境按节计数,可以修改计数器选项 \lstinline{thmcnt},可用选项为 \lstinline{chapter} (默认)与 \lstinline{section}
\begin{lstlisting}
\documentclass[section]{elegantbook} %or
\documentclass[thmcnt=section]{elegantbook}
\end{lstlisting}
\subsection{自定义定理类环境}
4.4 版本新增了一个自定义定理类环境的命令:\lstinline|\elegantnewtheorem|,它的参数含义如下:
\begin{lstlisting}
% fancy 模式(默认)
\elegantnewtheorem{env}{title}{style}{prefix}
% simple 模式
\elegantnewtheorem{env}{title}{style}
\end{lstlisting}
该命令可以同时定义编号环境 \lstinline|env| 和不编号环境 \lstinline|env*|。
其中 \lstinline|style| 支持的参数有:\lstinline|defstyle|\lstinline|thmstyle|\lstinline|prostyle|,分别对应“定义”,“定理”,“命题”三种样式。
\begin{itemize}
\item 在炫彩模式(\lstinline{fancy})下,需要 4 个参数来定义一个新的定理类环境,分别是:
定理类环境名,定理类环境的标题,定理类环境的样式,该定理类环境的前缀:
\begin{lstlisting}
% 导言区
\elegantnewtheorem{examplefancy}{自定义定理类环境}{thmstyle}{exfancy}
% 正文
\begin{examplefancy}{定理名}{label}
这里是自定义定理类环境 \ref{exfancy:label}
\end{examplefancy}
\begin{examplefancy*}{定理名}
这里是无编号自定义定理类环境
\end{examplefancy*}
\end{lstlisting}
如果不给出第四个参数,或第四个参数置空的话,将会用定理类环境名来作为默认前缀,即
\begin{lstlisting}
% 导言区
\elegantnewtheorem{test}{TEST}{thmstyle}
% 或
\elegantnewtheorem{test}{TEST}{thmstyle}{}
% 正文
\begin{test}{name}{label}
默认前缀为 test。
使用 \ref{test:label} 来引用这个定理类环境。
\end{test}
\end{lstlisting}
这时会在终端以及 \verb|.log| 文件中输出一个警告信息来提示用户没有定义前缀:
\begin{lstlisting}[language=bash]
Class elegantbook Warning: Because you didn't provide a prefix.
(elegantbook) We use test as the default prefix.
(elegantbook) You have to use
(elegantbook) \ref {test:label} to refer a
(elegantbook) \begin {test}{name}{label} environment.
(elegantbook) on input line 3.
\end{lstlisting}
\item 在简单模式(\lstinline{simple})下,需要 3 个参数来定义一个新的定理类环境,分别是:
定理类环境名,定理类环境的标题,定理类环境的样式,该定理类环境的前缀:
\begin{lstlisting}
% 导言区
\elegantnewtheorem{examplesimple}{自定义定理类环境}{thmstyle}
% 正文
\begin{examplesimple}[定理名]\label{exsimple:label}
这里是自定义定理类环境 \ref{exsimple:label}
\end{examplesimple}
\begin{examplesimple*}[定理名]
这里是无编号自定义定理类环境
\end{examplesimple*}
\end{lstlisting}
如果此时错误地给出了第四个参数,那么将会在终端以及 \verb|.log| 文件中输出一个错误信息:
\begin{lstlisting}
% elegantbook-cn.tex
\elegantnewtheorem{test}{TEST}{thmstyle}{}
% .log file
./elegantbook-cn.tex:3: Class elegantbook Error: You can't set a prefix in mode ``simple''.
(elegantbook) Just use
(elegantbook) \elegantnewtheorem {test}{TEST}{thmstyle} .
\end{lstlisting}
\end{itemize}
\subsection{其他环境的使用} \subsection{其他环境的使用}
其他三种环境没有选项,可以直接使用,比如 \lstinline{example} 环境的使用方法与效果: 其他三种环境没有选项,可以直接使用,比如 \lstinline{example} 环境的使用方法与效果:
@@ -385,21 +577,46 @@ Overleaf 上,中文需要使用 \hologo{XeLaTeX} 进行编译,英文建议
\section{参考文献} \section{参考文献}
此模板使用了 \hologo{biber} 来生成参考文献,也即使用 \lstinline{biblatex} 宏包,在中文示例中,使用了 \lstinline{gbt7714} 宏包。参考文献示例:\cite{cn1,en2,en3} 使用了中国一个大型的 P2P 平台(人人贷)的数据来检验男性投资者和女性投资者在投资表现上是否有显著差异。 \subsection{打印文献}
你可以在谷歌学术MendeleyEndnote 中获得文献条目bib item然后把它们添加到 \lstinline{reference.bib} 中。在文中引用的时候引用它们的键值bib key即可。注意需要在编译的过程中添加 \hologo{biber} 编译。 之前我们将文献调用的命令放在模板里面,然后用户反馈 \lstinline{\cite} 命令无法自动补全,因此我们新版本将其拿到外面来,新版本打印参考文献的命令的方法是,在导言区(也即 \lstinline|\begin{document}| 之前),加入:
为了方便文献样式修改,模板引入了 \lstinline{bibstyle}\lstinline{citestyle} 选项默认均为数字格式numeric如果需要设置为国标 GB7714-2015需要使用 \begin{lstlisting}
\lstinline|\addbibresource[location=local]{reference.bib}|。
\end{lstlisting}
然后再需要打印文献的地方使用:
\begin{lstlisting}
\printbibliography[heading=bibintoc, title=\ebibname]
\end{lstlisting}
其中 \lstinline{reference.bib} 为参考文献存放的文件,需要放在项目文件夹下。
\subsection{修改文献格式}
此外,本模板调用了 biblatex 宏包,并提供了 biber默认 和 bibtex 两个后端选项,可以使用 \lstinline{bibend} 进行修改:
\begin{lstlisting}
\documentclass[bibtex]{elegantbook}
\documentclass[bibend=bibtex]{elegantbook}
\end{lstlisting}
关于文献条目bib item你可以在谷歌学术MendeleyEndnote 中取,然后把它们添加到 \lstinline{reference.bib} 中。在文中引用的时候引用它们的键值bib key即可。
为了方便文献样式修改,模板引入了 \lstinline{bibstyle}\lstinline{citestyle} 选项默认均为数字格式numeric参考文献示例\cite{cn1,en2,en3} 使用了中国一个大型的 P2P 平台(人人贷)的数据来检验男性投资者和女性投资者在投资表现上是否有显著差异。
如果需要设置为国标 GB7714-2015需要使用
\begin{lstlisting} \begin{lstlisting}
\documentclass[citestyle=gb7714-2015, bibstyle=gb7714-2015]{elegantbook} \documentclass[citestyle=gb7714-2015, bibstyle=gb7714-2015]{elegantbook}
\end{lstlisting} \end{lstlisting}
如果需要添加排序方式,可以在导言区加入 如果需要添加排序方式,可以在导言区加入下面命令:
\begin{lstlisting} \begin{lstlisting}
\ExecuteBibliographyOptions{sorting=ynt} \ExecuteBibliographyOptions{sorting=ynt}
\end{lstlisting} \end{lstlisting}
启用国标之后,可以加入 \lstinline{sorting=gb7714-2015} 如果使用的是国标,可以 \lstinline{ynt} 改为 \lstinline{gb7714-2015},使文献按照国标规定进行文献排序
\section{添加序章} \section{添加序章}
@@ -464,7 +681,7 @@ The content of introduction.
效果如下: 效果如下:
\begin{problemset} \begin{problemset}[我的题目]
\item exercise 1 \item exercise 1
\item exercise 2 \item exercise 2
\item exercise 3 \item exercise 3
@@ -549,12 +766,12 @@ The content of introduction.
如果使用 \lstinline{newtx} 系列字体宏包,需要注意下连字符的问题。 如果使用 \lstinline{newtx} 系列字体宏包,需要注意下连字符的问题。
\begin{equation} \begin{equation}
\int_{R^q} f(x,y) dy.\emph{of\kern0pt f} \int_{R^q} f(x,y) dy.\emph{of\kern0pt f} \sin x
\end{equation} \end{equation}
的代码为 的代码为
\begin{lstlisting} \begin{lstlisting}
\begin{equation} \begin{equation}
\int_{R^q} f(x,y) dy.\emph{of \kern0pt f} \int_{R^q} f(x,y) dy.\emph{of\kern0pt f} \sin x
\end{equation} \end{equation}
\end{lstlisting} \end{lstlisting}
@@ -584,14 +801,10 @@ LaTeX Error:
模板从 3.10 版本提供中文字体选项 \lstinline{chinesefont},可选项有 模板从 3.10 版本提供中文字体选项 \lstinline{chinesefont},可选项有
\begin{enumerate} \begin{enumerate}
\item \lstinline{ctexfont}:默认选项,使用 \lstinline{ctex} 宏包根据系统自行选择字体,可能存在字体缺失的问题,更多内容参考 \lstinline{ctex} 宏包\href{https://ctan.org/pkg/ctex}{官方文档}\footnote{可以使用命令提示符,输入 \lstinline{texdoc ctex} 调出本地 \lstinline{ctex} 宏包文档} \item \lstinline{ctexfont}:默认选项,使用 \lstinline{ctex} 宏包根据系统自行选择字体,可能存在字体缺失的问题,更多内容参考 \lstinline{ctex} 宏包\href{https://ctan.org/pkg/ctex}{官方文档}\footnote{可以使用命令提示符,输入 \lstinline{texdoc ctex} 调出本地 \lstinline{ctex} 宏包文档}
\item \lstinline{founder}:方正字体选项调用 \lstinline{ctex} 宏包并且使用 \lstinline{fontset=none} 选项,然后设置字体为方正四款免费字体,方正字体下载注意事项见后文。 \item \lstinline{founder}:方正字体选项\textbf{需要安装方正字体}),后台调用 \lstinline{ctex} 宏包并且使用 \lstinline{fontset=none} 选项,然后设置字体为方正四款免费字体,方正字体下载注意事项见后文,用户只需要安装方正字体即可使用该选项
\item \lstinline{nofont}:调用 \lstinline{ctex} 宏包并且使用 \lstinline{fontset=none} 选项,不设定中文字体,用户可以自行设置中文字体,具体见后文。 \item \lstinline{nofont}后台会调用 \lstinline{ctex} 宏包并且使用 \lstinline{fontset=none} 选项,不设定中文字体,用户可以自行设置中文字体,具体见后文。
\end{enumerate} \end{enumerate}
\begin{remark}
使用 \lstinline{founder} 选项或者 \lstinline{nofont} 时,必须使用 \hologo{XeLaTeX} 进行编译。
\end{remark}
\subsection{方正字体选项} \subsection{方正字体选项}
由于使用 \lstinline{ctex} 宏包默认调用系统已有的字体,部分系统字体缺失严重,因此,用户希望能够使用其它字体,我们推荐使用方正字体。方正的{\songti 方正书宋}{\heiti 方正黑体}{\kaishu 方正楷体}{\fangsong 方正仿宋}四款字体均可免费试用,且可用于商业用途。用户可以自行从\href{http://www.foundertype.com/}{方正字体官网}下载此四款字体,在下载的时候请\textbf{务必}注意选择 GBK 字符集,也可以使用 \href{https://www.latexstudio.net/}{\LaTeX{} 工作室}提供的\href{https://pan.baidu.com/s/1BgbQM7LoinY7m8yeP25Y7Q}{方正字体提取码为njy9} 进行安装。安装时,{\kaishu Win 10 用户请右键选择为全部用户安装,否则会找不到字体。} 由于使用 \lstinline{ctex} 宏包默认调用系统已有的字体,部分系统字体缺失严重,因此,用户希望能够使用其它字体,我们推荐使用方正字体。方正的{\songti 方正书宋}{\heiti 方正黑体}{\kaishu 方正楷体}{\fangsong 方正仿宋}四款字体均可免费试用,且可用于商业用途。用户可以自行从\href{http://www.foundertype.com/}{方正字体官网}下载此四款字体,在下载的时候请\textbf{务必}注意选择 GBK 字符集,也可以使用 \href{https://www.latexstudio.net/}{\LaTeX{} 工作室}提供的\href{https://pan.baidu.com/s/1BgbQM7LoinY7m8yeP25Y7Q}{方正字体提取码为njy9} 进行安装。安装时,{\kaishu Win 10 用户请右键选择为全部用户安装,否则会找不到字体。}
@@ -604,12 +817,12 @@ LaTeX Error:
如果你想完全自定义字体\footnote{这里仍然以方正字体为例。},你可以选择 \lstinline{chinesefont=nofont},然后在导言区设置 如果你想完全自定义字体\footnote{这里仍然以方正字体为例。},你可以选择 \lstinline{chinesefont=nofont},然后在导言区设置
\begin{lstlisting} \begin{lstlisting}
\setCJKmainfont[BoldFont={FZHei-B01},ItalicFont={FZKai-Z03}]{FZShuSong-Z01} \setCJKmainfont[BoldFont={FZHei-B01},ItalicFont={FZKai-Z03}]{FZShuSong-Z01}
\setCJKsansfont[BoldFont={FZHei-B01},ItalicFont={FZHei-B01}]{FZHei-B01} \setCJKsansfont[BoldFont={FZHei-B01}]{FZKai-Z03}
\setCJKmonofont[BoldFont={FZHei-B01},ItalicFont={FZHei-B01}]{FZFangSong-Z02} \setCJKmonofont[BoldFont={FZHei-B01}]{FZFangSong-Z02}
\setCJKfamilyfont{zhsong}{FZShuSong-Z01} \setCJKfamilyfont{zhsong}{FZShuSong-Z01}
\setCJKfamilyfont{zhhei}{FZHei-B01} \setCJKfamilyfont{zhhei}{FZHei-B01}
\setCJKfamilyfont{zhkai}{FZKai-Z03} \setCJKfamilyfont{zhkai}[BoldFont={FZHei-B01}]{FZKai-Z03}
\setCJKfamilyfont{zhfs}{FZFangSong-Z02} \setCJKfamilyfont{zhfs}[BoldFont={FZHei-B01}]{FZFangSong-Z02}
\newcommand*{\songti}{\CJKfamily{zhsong}} \newcommand*{\songti}{\CJKfamily{zhsong}}
\newcommand*{\heiti}{\CJKfamily{zhhei}} \newcommand*{\heiti}{\CJKfamily{zhhei}}
\newcommand*{\kaishu}{\CJKfamily{zhkai}} \newcommand*{\kaishu}{\CJKfamily{zhkai}}
@@ -638,7 +851,7 @@ Lebesgue 积分有几种不同的定义方式。我们将采用逐步定义非
我们将通过三个步骤定义可测函数的积分。首先定义非负简单函数的积分。以下设 $E$$\mathcal{R}^n$ 中的可测集。 我们将通过三个步骤定义可测函数的积分。首先定义非负简单函数的积分。以下设 $E$$\mathcal{R}^n$ 中的可测集。
\begin{definition}[可积性] \label{def:int} \begin{definition}[可积性] \label{def:int}
$ f(x)=\sum\limits_{i=1}^{k} a_i \chi_{A_i}(x)$$E$ 上的非负简单函数,其中 $\{A_1,A_2,\ldots,A_k\}$$E$ 上的一个可测分割,$a_1,a_2,\ldots,a_k$ 是非负实数。定义 $f$$E$ 上的积分为 $\int_{a}^b f(x)$ $ f(x)=\sum\limits_{i=1}^{k} a_i \chi_{A_i}(x)$$E$ 上的\textbf{非负简单函数},中文其中 $\{A_1,A_2,\ldots,A_k\}$$E$ 上的一个可测分割,$a_1,a_2,\ldots,a_k$ 是非负实数。定义 $f$$E$ 上的积分为 $\int_{a}^b f(x)$
\begin{equation} \begin{equation}
\label{inter} \label{inter}
\int_{E} f dx = \sum_{i=1}^k a_i m(A_i) \pi \alpha\beta\sigma\gamma\nu\xi\epsilon\varepsilon. \oint_{a}^b\ointop_{a}^b\prod_{i=1}^n \int_{E} f dx = \sum_{i=1}^k a_i m(A_i) \pi \alpha\beta\sigma\gamma\nu\xi\epsilon\varepsilon. \oint_{a}^b\ointop_{a}^b\prod_{i=1}^n
@@ -680,7 +893,7 @@ Lebesgue 积分有几种不同的定义方式。我们将采用逐步定义非
\int_{\mathcal{R}^p\times\mathcal{R}^q} f(x,y) dxdy=\int_{\mathcal{R}^p}\left(\int_{\mathcal{R}^q}f(x,y)dy\right)dx. \int_{\mathcal{R}^p\times\mathcal{R}^q} f(x,y) dxdy=\int_{\mathcal{R}^p}\left(\int_{\mathcal{R}^q}f(x,y)dy\right)dx.
\end{equation} \end{equation}
2$f(x,y)$$\mathcal{R}^p\times\mathcal{R}^q$ 上的可积函数,则对几乎处处的 $x\in\mathcal{R}^p$$f(x,y)$ 作为 $y$ 的函数是 $\mathcal{R}^q$ 上的可积函数,并且 $g(x)=\int_{\mathcal{R}^q}f(x,y) dy$$\mathcal{R}^p$ 上的可积函数。而且~\ref{eq:461} 成立。 2$f(x,y)$$\mathcal{R}^p\times\mathcal{R}^q$ 上的可积函数,则对几乎处处的 $x\in\mathcal{R}^p$$f(x,y)$ 作为 $y$ 的函数是 $\mathcal{R}^q$ 上的可积函数,并且 $g(x)=\int_{\mathcal{R}^q}f(x,y) dy$$\mathcal{R}^p$ 上的可积函数。而且~\eqref{eq:461} 成立。
\end{theorem} \end{theorem}
\ref{thm:fubi} \ref{thm:fubi}
@@ -732,10 +945,8 @@ Lebesgue 积分有几种不同的定义方式。我们将采用逐步定义非
见前文介绍,可以使用 \lstinline{scheme=chinese} 设置。 见前文介绍,可以使用 \lstinline{scheme=chinese} 设置。
\item \question{大佬,我想把正文字体改为亮色,背景色改为黑灰色。} \item \question{大佬,我想把正文字体改为亮色,背景色改为黑灰色。}
页面颜色可以使用 \lstinline{\pagecolor} 命令设置,文本命令可以参考\href{https://tex.stackexchange.com/questions/278544/xcolor-what-is-the-equivalent-of-default-text-color}{这里}进行设置。 页面颜色可以使用 \lstinline{\pagecolor} 命令设置,文本命令可以参考\href{https://tex.stackexchange.com/questions/278544/xcolor-what-is-the-equivalent-of-default-text-color}{这里}进行设置。
\item \question{\lstinline[breaklines]{Package ctex Error: CTeX fontset `Mac' is unavailable.}} \item \question{\lstinline{! LaTeX Error: Unknown option 'scheme=plain' for package 'ctex'.}}
在 Mac 系统下,中文编译请使用 \hologo{XeLaTeX} 你用的 C\TeX{} 套装吧?这个里面的 \lstinline{ctex} 宏包已经是已经是 10 年前的了,与本模板使用 \lstinline{ctex} 宏集有很大区别。不建议 C\TeX{} 套装了,请卸载并安装 \TeX{} Live 2022
\item \question{\lstinline{! LaTeX Error: Unknown option `scheme=plain' for package `ctex'.}}
你用的 C\TeX{} 套装吧?这个里面的 \lstinline{ctex} 宏包已经是已经是 10 年前的了,与本模板使用的 \lstinline{ctex} 宏集有很大区别。不建议 C\TeX{} 套装了,请卸载并安装 \TeX{} Live 2021。
\item \question{我该使用什么版本?} \item \question{我该使用什么版本?}
请务必使用\href{https://github.com/ElegantLaTeX/ElegantBook/releases}{最新正式发行版},发行版间不定期可能会有更新(修复 bug 或者改进之类),如果你在使用过程中没有遇到问题,不需要每次更新\href{https://github.com/ElegantLaTeX/ElegantBook/archive/master.zip}{最新版},但是在发行版更新之后,请尽可能使用最新版(发行版)!最新发行版可以在 GitHub 或者 \TeX{} Live 2021 内获取。 请务必使用\href{https://github.com/ElegantLaTeX/ElegantBook/releases}{最新正式发行版},发行版间不定期可能会有更新(修复 bug 或者改进之类),如果你在使用过程中没有遇到问题,不需要每次更新\href{https://github.com/ElegantLaTeX/ElegantBook/archive/master.zip}{最新版},但是在发行版更新之后,请尽可能使用最新版(发行版)!最新发行版可以在 GitHub 或者 \TeX{} Live 2021 内获取。
\item \question{我该使用什么编辑器?} \item \question{我该使用什么编辑器?}
@@ -744,17 +955,36 @@ Lebesgue 积分有几种不同的定义方式。我们将采用逐步定义非
模板的使用修改都是自由的你们声明模板来源以及模板地址GitHub 地址)即可,其他未尽事宜按照开源协议 LPPL-1.3c。做好之后,如果方便的话,可以给我们一个链接,我把你们的教材放在 Elegant\LaTeX{} 用户作品集里。 模板的使用修改都是自由的你们声明模板来源以及模板地址GitHub 地址)即可,其他未尽事宜按照开源协议 LPPL-1.3c。做好之后,如果方便的话,可以给我们一个链接,我把你们的教材放在 Elegant\LaTeX{} 用户作品集里。
\item \question{请问交叉引用是什么?} \item \question{请问交叉引用是什么?}
本群和本模板适合有一定 \LaTeX{} 基础的用户使用,新手请先学习 \LaTeX{} 的基础,理解各种概念,否则你将寸步难行。 本群和本模板适合有一定 \LaTeX{} 基础的用户使用,新手请先学习 \LaTeX{} 的基础,理解各种概念,否则你将寸步难行。
\item \question{定义等环境中无法使用加粗命令么?}
是这样的,默认中文并没加粗命令,如果你想在定义等环境中使用加粗命令,请使用 \lstinline{\heiti} 等字体命令,而不要使用 \lstinline{\textbf}。或者,你可以将 \lstinline|\textbf| 重新定义为 \lstinline|\heiti|。英文模式不存在这个问题。
\item \question{代码高亮环境能用其他语言吗?} \item \question{代码高亮环境能用其他语言吗?}
可以的ElegantBook 模板用的是 \lstinline{listings} 宏包,你可以在环境(\lstinline{lstlisting})之后加上语言(比如 Python 使用 \lstinline{language=Python} 选项),全局语言修改请使用 \lstinline{lsset} 命令,更多信息请参考宏包文档。 可以的ElegantBook 模板用的是 \lstinline{listings} 宏包,你可以在环境(\lstinline{lstlisting})之后加上语言(比如 Python 使用 \lstinline{language=Python} 选项),全局语言修改请使用 \lstinline{lstset} 命令,更多信息请参考宏包文档。
\item \question{群主,什么时候出 Beamer 的模板主题ElegantSlide 或者 ElegantBeamer} \item \question{群主,什么时候出 Beamer 的模板主题ElegantSlide 或者 ElegantBeamer}
由于 Beamer 中有一个很优秀的主题 \href{https://github.com/matze/mtheme}{Metropolis}。后续确定不会再出任何主题/模板,请大家根据需要修改已有主题。 由于 Beamer 中有一个很优秀的主题 \href{https://github.com/matze/mtheme}{Metropolis}。后续确定不会再出任何主题/模板,请大家根据需要修改已有主题。
\end{enumerate} \end{enumerate}
\chapter{版本更新历史} \chapter{版本更新历史}
根据用户的反馈,我们不断修正和完善模板。截止到此次更新ElegantBook 模板在 GitHub 上有将近 100 次提交正式发行版本release有 17 次。由于 3.00 之前版本与现在版本差异非常大,在此不列出 3.00 之前的更新内容。 根据用户的反馈,我们不断修正和完善模板。由于 3.00 之前版本与现在版本差异非常大,在此不列出 3.00 之前的更新内容。
\datechange{2022/08/15}{版本 4.4 正式发布。}
\begin{change}
\item \textbf{重要改动}:提供了一个定义定理类环境的命令 \lstinline|\elegantnewtheorem|
\item \textbf{重要改动}:为所有内置定理类环境提供了带星号的版本,带星号的定理类环境不会编号,修复 \href{https://github.com/ElegantLaTeX/ElegantBook/issues/167}{issue: \#167}
\item \textbf{重要改动}:在 \lstinline{scheme=chinese} 下将目录中的“第 1 章”修改为“第一章”;
\item 将 TeX Gyre Termes 改为 TeX Gyre TermesX使英文部分字形与 newtx 系列宏包更相近;
\item 重写了内置定理类环境的实现方法,修复了一些 bug由于修改部分较大如果引入了新的 bug请及时在 QQ 群或 \href{https://github.com/ElegantLaTeX}{Github} 上进行反馈;
\item 删除 Gitee 仓库地址,恢复 GitHub 提交pull requests)
\item 将参考文献命令添加到导言区,使编辑器能够对参考文献自动补全。
\end{change}
\datechange{2022/04/09}{版本 4.3 正式发布。}
\begin{change}
\item 放弃 newtx 系列宏包的设置,改用 TeX Gyre Termes并设置其他字体
\item 修改定理类环境内部字体设置,修复环境内部中文无法加粗问题;
\item 增加定理类环境的计数器选项 \lstinline{thmcnt},可选 \lstinline{chapter}\lstinline{section}
\item 增加 \lstinline{bibend} 选项,可选 \lstinline{bibend=biber}(默认)和 \lstinline{bibend=bibtex}
\end{change}
@@ -899,13 +1129,14 @@ Lebesgue 积分有几种不同的定义方式。我们将采用逐步定义非
\item 修改英文字体为 \lstinline{newtx} 系列,另外大型操作符号维持 cm 字体。 \item 修改英文字体为 \lstinline{newtx} 系列,另外大型操作符号维持 cm 字体。
\item 中文字体改用 \lstinline{ctex} 宏包自动设置。 \item 中文字体改用 \lstinline{ctex} 宏包自动设置。
\item 删除 \lstinline{xeCJK} 字体设置,原因是不同系统字体不方便统一。 \item 删除 \lstinline{xeCJK} 字体设置,原因是不同系统字体不方便统一。
\item 定理换用 \lstinline{tcolobox} 宏包定义,并基本维持原有的定理样式,优化显示效果,支持跨页;定理类名字重命名,如 etheorem 改为 theorem 等等。 \item 定理换用 \lstinline{tcolorbox} 宏包定义,并基本维持原有的定理样式,优化显示效果,支持跨页;定理类名字重命名,如 etheorem 改为 theorem 等等。
\item 删去自定义的缩进命令 \lstinline{\Eindent} \item 删去自定义的缩进命令 \lstinline{\Eindent}
\item 添加参考文献宏包 \lstinline{natbib} \item 添加参考文献宏包 \lstinline{natbib}
\item 颜色名字重命名。 \item 颜色名字重命名。
\end{change} \end{change}
\nocite{*} \nocite{*}
\printbibliography[heading=bibintoc, title=\ebibname] \printbibliography[heading=bibintoc, title=\ebibname]
\appendix \appendix

View File

@@ -1,12 +1,12 @@
\documentclass[11pt,fancy]{elegantbook} \documentclass[11pt]{elegantbook}
\title{An Elegant \LaTeX{} Template for Books} \title{An Elegant \LaTeX{} Template for Books}
\subtitle{Classic Elegant\LaTeX{} Template} \subtitle{Classic Elegant\LaTeX{} Template}
\author{Ethan Deng \& Liam Huang} \author{Ethan Deng \& Liam Huang}
\institute{Elegant\LaTeX{} Program} \institute{Elegant\LaTeX{} Program}
\date{March 8, 2022} \date{Aug 15, 2022}
\version{4.2} \version{4.4}
\bioinfo{Bio}{Information} \bioinfo{Bio}{Information}
\extrainfo{Victory won\rq t come to us unless we go to it. } \extrainfo{Victory won\rq t come to us unless we go to it. }
@@ -14,9 +14,12 @@
\logo{logo-blue.png} \logo{logo-blue.png}
\cover{cover.jpg} \cover{cover.jpg}
% modify the color in the middle of titlepage
\definecolor{customcolor}{RGB}{32,178,170} \definecolor{customcolor}{RGB}{32,178,170}
\colorlet{coverlinecolor}{customcolor} \colorlet{coverlinecolor}{customcolor}
\usepackage{cprotect}
\addbibresource[location=local]{reference.bib} % bib
\begin{document} \begin{document}
@@ -32,49 +35,22 @@ Elegant\LaTeX{} Program developers are intended to provide you beautiful, elegan
Contact Infos: Contact Infos:
\begin{itemize} \begin{itemize}
\item Homepage: \href{https://elegantlatex.org/}{https://elegantlatex.org/}
\item GitHub: \href{https://github.com/ElegantLaTeX/}{https://github.com/ElegantLaTeX/} \item GitHub: \href{https://github.com/ElegantLaTeX/}{https://github.com/ElegantLaTeX/}
\item CTAN: \href{https://ctan.org/pkg/elegantbook}{https://ctan.org/pkg/elegantbook} \item CTAN: \href{https://ctan.org/pkg/elegantbook}{https://ctan.org/pkg/elegantbook}
\item Wiki: \href{https://github.com/ElegantLaTeX/ElegantBook/wiki}{https://github.com/ElegantLaTeX/ElegantBook/wiki}
\item Download: \href{https://github.com/ElegantLaTeX/ElegantBook/releases}{release}, \href{https://github.com/ElegantLaTeX/ElegantBook/archive/master.zip}{latest version} \item Download: \href{https://github.com/ElegantLaTeX/ElegantBook/releases}{release}, \href{https://github.com/ElegantLaTeX/ElegantBook/archive/master.zip}{latest version}
\item Weibo: Elegant\LaTeX{}
\item Wechat: Elegant\LaTeX{}
\item QQ: 692108391
\item Email: \email{elegantlatex2e@gmail.com}
\end{itemize} \end{itemize}
\section{Online Usage}
\section{ElegantBook Updates} You can visit \href{https://www.overleaf.com/}{Overleaf} to use our template online anywhere and anytime without local installation. To find our template, search \lstinline{elegantlatex} in the \lstinline{templates} or simply visit \href{https://www.overleaf.com/latex/templates?addsearch=elegantlatex}{search result}, choose the template you prefer and \lstinline{Open as Template} to own a copy yourself to edit freely. To learn more about Overleaf, please refer to \href{https://www.overleaf.com/learn}{Documentation}.
Version 4.2 is the \textit{temporary} version before v4.3 which will be released when \TeX Live 2022 is ready, we add quick bug fix caused by newtx package updates, and multilingual translation \lstinline{lang=jp}. What\rq s new in this version:
\begin{change}
\item Bug fix due to the update of newtx fonts;
\item Add `Chapter' in TOC, and redefine \lstinline{\chaptername} to unify the logic under different languages;
\item Add language option for Japanese, \lstinline{lang=jp}.
\item \textbf{! Warnings}: Due to this `urgent' fonts bug and TOC modification, the multilingual option may cause some unexpected errors, you can report in this \href{https://github.com/ElegantLaTeX/ElegantBook/issues/170}{issue}, I will fix it after the releases of \TeX{} Live 2022.
\end{change}
\section{Installation and Update} \section{Portable Version}
Both portable version and installation package are available, online usage is optional as well.
\subsection{To Use Templates Online}
Visit \href{https://www.overleaf.com/}{Overleaf} to use our template online anywhere and anytime without local installation. To find our template, search \lstinline{elegantlatex} in the \lstinline{templates} or simply visit \href{https://www.overleaf.com/latex/templates?addsearch=elegantlatex}{search result}, choose the template you prefer and \lstinline{Open as Template} to own a copy yourself to edit freely. To learn more about Overleaf, please refer to \href{https://www.overleaf.com/learn}{Documentation}.
\begin{remark}
On Overleaf, please use \hologo{XeLaTeX} to compile articles in Chinese and \hologo{pdfLaTeX} to compile articles in English.
\end{remark}
\subsection{To Use Portable Version}
For portable version, simply download lastest ElegantBook-master from GitHub or CTAN (to be more accurate, download \lstinline{elegantbook.cls}) and save the file(s) under your working directory. This way of installation is simple and convenient, but you have to manually update \lstinline{cls} now and then. For portable version, simply download lastest ElegantBook-master from GitHub or CTAN (to be more accurate, download \lstinline{elegantbook.cls}) and save the file(s) under your working directory. This way of installation is simple and convenient, but you have to manually update \lstinline{cls} now and then.
\subsection{Update Templates} \section{Update Templates}
If you fail to update templates using \lstinline{tlshell}, please use cmd to update all the packages or switch to portable version instead. You can use cmd/terminal to update the tlmgr itself and all the packages, the commands are:
Use the following commands(administrator privileges) to update:
\begin{lstlisting} \begin{lstlisting}
tlmgr update --self tlmgr update --self
tlmgr update --all tlmgr update --all
@@ -82,19 +58,15 @@ tlmgr update --all
To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \TeX{} distribution?} To learn more, please refer to \href{https://tex.stackexchange.com/questions/55437/how-do-i-update-my-tex-distribution}{How do I update my \TeX{} distribution?}
\subsection{Other Release Versions} \section{Other Release Versions}
If you are a \TeX{} Live 2018/2019/2020 user and would like to update, the official solution is to uninstall the previous version. If you want to save the bother of uninstallation and re-installation, please copy \lstinline{elegantbook.cls} to the installation directory of \TeX{} Live 2021 (default: \lstinline|C:\texlive\2021\texmf-dist\tex\latex\elegantbook| ), run \lstinline{texhash} in cmd. If you are a \TeX{} Live 2018/2019/2020/2021 user and would like to update, the official solution is to uninstall the previous version. If you want to save the bother of uninstallation and re-installation, please copy \lstinline{elegantbook.cls} to the installation directory of \TeX{} Live 2022 (default: \lstinline|C:\texlive\2022\texmf-dist\tex\latex\elegantbook| ), run \lstinline{texhash} in cmd.
\section{About Pull Request}
For some reasons, pull requests will NOT by accepted since May 20, 2019. For those who want to help improve the templates, submit issues or clone to your own repository to modify under LPPL-1.3c.
\chapter{ElegantBook Settings} \chapter{ElegantBook Settings}
This template is based on the Standard \LaTeX{} book class, so the options of book class work as well (Note that the option of papersize has no effect due to \lstinline{device} option). The default encoding is UTF-8 while \TeX{} Live is recommended. The test environments are Win10/Ubuntu 20.04/macOS + \TeX{} Live 2022/ Mac\TeX{} 2022, either \hologo{pdfLaTeX} or \hologo{XeLaTeX} works fine for \lstinline{lang=en}.
This template is based on the Standard \LaTeX{} book class, so the options of book class work as well (Note that the option of papersize has no effect due to \lstinline{device} option). The default encoding is UTF-8 while \TeX{} Live is recommended. The test environment is Win10 + \TeX{} Live 2021, either \hologo{pdfLaTeX} or \hologo{XeLaTeX} works fine. \hologo{XeLaTeX} is preferred for Chinese articles.
\section{Languages} \section{Languages}
We defined one option named \lstinline{lang} which has two basic values, \lstinline{lang=en} (default) , \lstinline{lang=cn}. Different values will alter the captions of figure/table, abstract name, refname, etc. You can use this option as We defined one option named \lstinline{lang} which has two basic values, \lstinline{lang=en} (default) , \lstinline{lang=cn}. Different values will alter the captions of figure/table, abstract name, refname, etc. You can use this option as
\begin{lstlisting} \begin{lstlisting}
\documentclass[en]{elegantbook} \documentclass[en]{elegantbook}
\documentclass[lang=en]{elegantbook} \documentclass[lang=en]{elegantbook}
@@ -109,7 +81,8 @@ Besides the two basic language translation, our user provide more options, here
\item Hungarian translation \lstinline{lang=hu}, provided by \href{https://github.com/palkotamas}{palkotamas}, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/111}{Hungarian translation}; \item Hungarian translation \lstinline{lang=hu}, provided by \href{https://github.com/palkotamas}{palkotamas}, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/111}{Hungarian translation};
\item Deutsch translation \lstinline{lang=de}, provided by Lisa, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/113}{Deutsch translation}; \item Deutsch translation \lstinline{lang=de}, provided by Lisa, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/113}{Deutsch translation};
\item Spanish translation \lstinline{lang=es}, provided by Gustavo A. Corradi, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/133}{Spanish translation}; \item Spanish translation \lstinline{lang=es}, provided by Gustavo A. Corradi, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/133}{Spanish translation};
\item Mongolian translation \lstinline{lang=mn}, provided by \href{https://github.com/Altantsooj}{Altantsooj}, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/137}{Mongolian translation}. \item Mongolian translation \lstinline{lang=mn}, provided by \href{https://github.com/Altantsooj}{Altantsooj}, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/137}{Mongolian translation};
\item Japanese translation \lstinline{lang=jp}, provided by \href{https://github.com/inusturbo}{inusturbo}, please refer to \href{https://github.com/ElegantLaTeX/ElegantBook/issues/172}{Japanese translation}.
\end{itemize} \end{itemize}
\begin{remark} \begin{remark}
@@ -124,7 +97,7 @@ The option for device (\lstinline{device}) was originally used in ElegantNote, n
\end{lstlisting} \end{lstlisting}
\section{Color Themes} \section{Color Themes}
This template contains 5 color themes, i.e. \textcolor{structure1}{\lstinline{green}}\footnote{Original default theme.}, \textcolor{structure2}{\lstinline{cyan}}, \textcolor{structure3}{\lstinline{blue}}(default), \textcolor{structure4}{\lstinline{gray}}, \textcolor{structure5}{\lstinline{black}}. You can choose \lstinline{green} with This template contains 5 color themes, i.e., \textcolor{structure1}{\lstinline{green}}\footnote{Original default theme.}, \textcolor{structure2}{\lstinline{cyan}}, \textcolor{structure3}{\lstinline{blue}}(default), \textcolor{structure4}{\lstinline{gray}}, \textcolor{structure5}{\lstinline{black}}. You can choose \lstinline{green} with
\begin{lstlisting} \begin{lstlisting}
\documentclass[green]{elegantbook} %or \documentclass[green]{elegantbook} %or
\documentclass[color=green]{elegantbook} \documentclass[color=green]{elegantbook}
@@ -235,37 +208,50 @@ We defined two sets of theorem modes, \lstinline{simple} style and \lstinline{fa
In this template, we defined four different theorem class environments In this template, we defined four different theorem class environments
\begin{itemize} \begin{itemize}
\item \textit{Theorem Environment}, including title and content, numbering corresponding to chapter. Three types depending on the format: \item \textit{Theorem Environments}, including title and content, numbering corresponding to chapter. Three types depending on the format:
\begin{itemize} \begin{itemize}
\item \textcolor{main}{\textbf{definition}} environment, the color is \textcolor{main}{main}; \item \textcolor{main}{\textbf{definition}} environment, the color is \textcolor{main}{main};
\item \textcolor{second}{\textbf{theorem, lemma, corollary}} environment, the color is \textcolor{second} {second}; \item \textcolor{second}{\textbf{theorem, lemma, corollary, axiom, postulate}} environment, the color is \textcolor{second} {second};
\item \textcolor{third}{\textbf{proposition}} environment, the color is \textcolor{third}{third}. \item \textcolor{third}{\textbf{proposition}} environment, the color is \textcolor{third}{third}.
\end{itemize} \end{itemize}
\item \textit{Example Environments}, including \textbf{example, exercise, problem} environment, auto numbering corresponding to chapter. \item \textit{Example Environment}, including \textbf{example, exercise, problem} environment, auto numbering according to chapter.
\item \textit{Proof Environment}, including \textbf{proof, note} environment containing introductory symbol (\textbf{note} environment) or ending symbol (\textbf{proof} environment). \item \textit{Proof Environment}, including \textbf{proof, note} environment containing introductory symbol (\textbf{note} environment) or ending symbol (\textbf{proof} environment).
\item \textit{Conclusion Environments}, including \textbf{conclusion, assumption, property, remark and solution}\footnote{We also define an option \lstinline{result}, which can hide the \lstinline{solution} and \lstinline{proof} environments. You can switch between \lstinline{result=answer} and \lstinline{result=noanswer}.} environments, all of which begin with boldfaced words, with format consistent with normal paragraphs. \item \textit{Conclusion Environment}, including \textbf{conclusion, assumption, property, remark and solution}\footnote{We also define an option \lstinline{result}, which can hide the \lstinline{solution} and \lstinline{proof} environments. You can switch between \lstinline{result=answer} and \lstinline{result=noanswer}.} environments, all of which begin with boldfaced words, with format consistent with normal paragraphs.
\end{itemize} \end{itemize}
All of theorem environments have star versions: \textcolor{main}{\textbf{definition*}}, \textcolor{second}{\textbf{theorem*}}, \textcolor{second}{\textbf{lemma*}}, \textcolor{second}{\textbf{corollary*}}, \textcolor{second}{\textbf{axiom*}}, \textcolor{second}{\textbf{postulate*}}, \textcolor{third}{\textbf{proposition*}}. Environments with an asterisk are not numbered.
\subsection{Theorem Class Environments} \subsection{Theorem Class Environments}
Since the template uses the \lstinline{tcolorbox} package to customize the theorem class environments, it is slightly different from the normal theorem environments. The usage is as follows:
\subsubsection{\lstinline{fancy} mode}
In \lstinline{fancy} mode, the template uses the \lstinline{tcolorbox} package to customize the theorem class environments, it is slightly different from the normal theorem environments. The usage is as follows:
\begin{lstlisting} \begin{lstlisting}
\begin{theorem}{theorem name}{label text} % name + label
The content of theorem. \begin{theorem}{theorem name}{label}
The content of a theorem with name and label.
Use \ref{thm:label} to refer this theorem.
\end{theorem}
% no name + label
\begin{theorem}{}{label no name}
The content of a theorem without name.
Use \ref{thm:label no name} to refer this theorem.
\end{theorem}
% name + no label
\begin{theorem}{theorem name}{}
The content of a theorem without label.
Can't refer this theorem.
The last {} can be removed.
\end{theorem}
% no name + no label
\begin{theorem}{}{}
The content of a theorem without name and label.
Can't refer this theorem.
Both of {} can be removed.
\end{theorem} \end{theorem}
\end{lstlisting} \end{lstlisting}
The first parameter \lstinline{<theorem name>} represents the name of the theorem, and the second parameter \lstinline{label} represents the label used in cross-reference with \verb|ref{thm:label}|. Note that cross-references must be prefixed with \lstinline{thm:}. The first parameter \lstinline{theorem name} represents the name of the theorem. If the current theorem has no name, please use \lstinline|{}|\cprotect\footnote{Unless this theorem has neither no label, you should not omit this \verb|{}|.}, and the second parameter \lstinline{label} represents the label used in cross-reference with \verb|\ref{thm:label}|. Note that cross-references must be prefixed with \lstinline{thm:}.
From version 4.1, you can write your theorem environments as follows:
\begin{lstlisting}
\begin{theorem}[theorem name]\label{thm:label text}
The content of theorem.
\end{theorem}
% or
\begin{theorem}
The content of theorem.
\end{theorem}
\end{lstlisting}
Other theorem class environments with the same usage includes: Other theorem class environments with the same usage includes:
@@ -278,6 +264,8 @@ Other theorem class environments with the same usage includes:
\midrule \midrule
definition & label & def & \lstinline|\ref{def:label}| \\ definition & label & def & \lstinline|\ref{def:label}| \\
theorem & label & thm & \lstinline|\ref{thm:label}| \\ theorem & label & thm & \lstinline|\ref{thm:label}| \\
postulate & label & pos & \lstinline|\ref{pos:label}| \\
axiom & label & axi & \lstinline|\ref{axi:label}|\\
lemma & label & lem & \lstinline|\ref{lem:label}| \\ lemma & label & lem & \lstinline|\ref{lem:label}| \\
corrlary & label & cor & \lstinline|\ref{cor:label}| \\ corrlary & label & cor & \lstinline|\ref{cor:label}| \\
proposition & label & pro & \lstinline|\ref{pro:label}| \\ proposition & label & pro & \lstinline|\ref{pro:label}| \\
@@ -286,6 +274,42 @@ Other theorem class environments with the same usage includes:
\label{tab:theorem-class}% \label{tab:theorem-class}%
\end{table}% \end{table}%
From version 4.1, you can write your theorem environments as follows:
\begin{lstlisting}
\begin{theorem}[theorem name]\label{thm:theorem-label}
The content of theorem.
\end{theorem}
% or
\begin{theorem}\label{thm:theorem-without-name}
The content of theorem.
\end{theorem}
\end{lstlisting}
In this case, cross-reference don't have to be prefixed, i.e. the parameter of \lstinline{\ref} is the same as that of \lstinline{\label}.
\subsubsection{\lstinline{simple} mode}
In \lstinline{simple} mode, the template uses the \lstinline{amsthm} package to customize the theorem class environments. The usage is as follows:
\begin{lstlisting}
\begin{theorem}[theorem name]\label{thm:theorem-label}
The content of theorem.
\end{theorem}
% or
\begin{theorem}\label{thm:theorem-without-name}
The content of theorem without name.
\end{theorem}
\end{lstlisting}
\subsection{Counter for Theorem Environments}
You can use \lstinline{thmcnt} option to control the theorem counter/number display style for the theorem environments, the acceptable options are \lstinline{chapter} (default) and \lstinline{section}:
\begin{lstlisting}
\documentclass[section]{elegantbook} % turn the Theorem 4.1 to Theorem 4.1.1
\documentclass[thmcnt=section]{elegantbook}
\end{lstlisting}
\subsection{Other Customized Environments} \subsection{Other Customized Environments}
The other three math environments can be called directly since there are no additional option for them, e.g. \lstinline{example}: The other three math environments can be called directly since there are no additional option for them, e.g. \lstinline{example}:
@@ -357,13 +381,13 @@ If you use \lstinline{newtx} fonts, type in:
When you are using \lstinline{newtx}, please pay attention to the hyphens. For instance, When you are using \lstinline{newtx}, please pay attention to the hyphens. For instance,
\begin{equation} \begin{equation}
\int_{R^q} f(x,y) dy.\emph{of\kern0pt f} \int_{R^q} f(x,y) dy.\emph{of\kern0pt f} \sin x
\end{equation} \end{equation}
The corresponding code is: The corresponding code is:
\begin{lstlisting} \begin{lstlisting}
\begin{equation} \begin{equation}
\int_{R^q} f(x,y) dy.\emph{of \kern0pt f} \int_{R^q} f(x,y) dy.\emph{of \kern0pt f} \sin x
\end{equation} \end{equation}
\end{lstlisting} \end{lstlisting}
@@ -393,12 +417,33 @@ This template uses biblatex to generate the bibliography, the default citestyle
If you want to use biblatex, you must create a file named \lstinline{reference.bib}, add bib items (from Google Scholar, Mendeley, EndNote, and etc.) to \lstinline{reference.bib} file, then cite the bibkey in the \lstinline{tex} file. The biber will automatically generate the bibliography for the reference you cited. If you want to use biblatex, you must create a file named \lstinline{reference.bib}, add bib items (from Google Scholar, Mendeley, EndNote, and etc.) to \lstinline{reference.bib} file, then cite the bibkey in the \lstinline{tex} file. The biber will automatically generate the bibliography for the reference you cited.
In order to get the editors' auto-completion working, you need to add following code in your preamble:
\begin{lstlisting}
\addbibresource[location=local]{reference.bib}
\end{lstlisting}
Then include the print commands where you want to print the bibliography:
\begin{lstlisting}
\printbibliography[heading=bibintoc, title=\ebibname]
\end{lstlisting}
To change the bibliography style, this version introduces two options: \lstinline{citestyle} and \lstinline{bibstyle}, please refer to \href{https://ctan.org/pkg/biblatex}{CTAN:biblatex} for more detail about these options. You can change your bibliography style as
To change the bibliography style, this version introduces \lstinline{citestyle} and \lstinline{bibstyle}, please refer to \href{https://ctan.org/pkg/biblatex}{CTAN:biblatex} for more detail about these options. You can change your bibliography style as
\begin{lstlisting} \begin{lstlisting}
\documentclass[citestyle=numeric-comp, bibstyle=authoryear]{elegantbook} \documentclass[citestyle=numeric-comp, bibstyle=authoryear]{elegantbook}
\end{lstlisting} \end{lstlisting}
We also add the \lstinline{bibend} option to this template, you can choose \lstinline{biber} (default) or \lstinline{bibtex} as you like, \lstinline{biber} is recommended.
\begin{lstlisting}
\documentclass[bibtex]{elegantbook} % or
\documentclass[bibend=bibtex]{elegantbook}
\end{lstlisting}
\section{Preface} \section{Preface}
If you want to add a preface before the first chapter with the number of chapter unchanged, please add the preface in the following way: If you want to add a preface before the first chapter with the number of chapter unchanged, please add the preface in the following way:
@@ -532,7 +577,7 @@ For tables and figures, note that floating environment is not allowed. You have
We will define the integral of a measurable function in three steps. First, we define the integral of a nonnegative simple function. Let $E$ be the measurable set in $\mathcal{R}^N$. We will define the integral of a measurable function in three steps. First, we define the integral of a nonnegative simple function. Let $E$ be the measurable set in $\mathcal{R}^N$.
\begin{definition}[Left Coset] \begin{definition}[Left Coset]
Let $H$ be a subgroup of a group~$G$. A \emph{left coset} of $H$ in $G$ is a subset of $G$ that is of the form $xH$, where $x \in G$ and $xH = \{ xh : h \in H \}$. Similarly a \emph{right coset} of $H$ in $G$ is a subset of $G$ that is of the form $Hx$, where $Hx = \{ hx : h \in H \}$ $\hbar$ Let $H$ be a subgroup of a group~$G$. A \emph{left coset} of $H$ in $G$ is a subset of $G$ that is of the form $xH$, where $x \in G$ and $xH = \{ xh : h \in H \}$. Similarly a \emph{right coset} of $H$ in $G$ is a subset of $G$ that is of the form $Hx$, where $Hx = \{ hx : h \in H \} \hbar$
\end{definition} \end{definition}
\begin{note} \begin{note}
@@ -545,10 +590,18 @@ Note that a subgroup~$H$ of a group $G$ is itself a left coset of $H$ in $G$.
Let $G$ be a finite group, and let $H$ be a subgroup of $G$. Then the order of $H$ divides the order of $G$. Let $G$ be a finite group, and let $H$ be a subgroup of $G$. Then the order of $H$ divides the order of $G$.
\end{theorem} \end{theorem}
\ref{thm:lg} As theorem \ref{thm:lg} refered.
\lipsum[3] \lipsum[3]
\begin{theorem}{theorem name}{label text}
The content of theorem.
\end{theorem}
we can refer this theorem as \ref{thm:label text}.
\begin{proposition}[Size of Left Coset] \begin{proposition}[Size of Left Coset]
Let $H$ be a finite subgroup of a group $G$. Then each left coset of $H$ in $G$ has the same number of elements as $H$. Let $H$ be a finite subgroup of a group $G$. Then each left coset of $H$ in $G$ has the same number of elements as $H$.
\end{proposition} \end{proposition}
@@ -622,11 +675,11 @@ We list some FAQs for users to refer to:
\item \question{I want to customize font and background color.} \item \question{I want to customize font and background color.}
Please use \lstinline{pagecolor} to change background color, refer to \href{https://tex.stackexchange.com/questions/278544/xcolor-what-is-the-equivalent-of-default-text-color}{this} to customize font. Please use \lstinline{pagecolor} to change background color, refer to \href{https://tex.stackexchange.com/questions/278544/xcolor-what-is-the-equivalent-of-default-text-color}{this} to customize font.
\item \question{Which version should I choose?} \item \question{Which version should I choose?}
Please use \href{https://github.com/ElegantLaTeX/ElegantBook/releases}{Latest Release} via GitHub or \TeX{} Live 2021. Please use \href{https://github.com/ElegantLaTeX/ElegantBook/releases}{Latest Release} via GitHub or \TeX{} Live 2022.
\item \question{Which editor should I choose?} \item \question{Which editor should I choose?}
You can use \TeX{} Live 2021 built-in \TeX works or \TeX Studio. You may refer to \href{https://github.com/EthanDeng/texworks-autocomplete}{\TeX{}works autocomplete}. \TeX{} Live 2021 + \TeX{}studio is strongly recommended. I myself use VS Code and Sublime Text. Related configurations can be found at \href{https://github.com/EthanDeng/vscode-latex}{vscode-latex} and \href{https://github.com/EthanDeng/sublime-text-latex}{sublime-text-latex}. You can use \TeX{} Live 2022 built-in \TeX works or \TeX Studio. You may refer to \href{https://github.com/EthanDeng/texworks-autocomplete}{\TeX{}works autocomplete}. \TeX{} Live 2022 + \TeX{}studio is strongly recommended. Related configurations can be found at \href{https://github.com/EthanDeng/vscode-latex}{vscode-latex} and \href{https://github.com/EthanDeng/sublime-text-latex}{sublime-text-latex}.
\item \question{Hello, we want to use ElegantBook to write a book about machine learning and would like your authorization.} \item \question{Hello, we want to use ElegantBook to write a book about machine learning and would like your authorization.}
Feel free to use our templates by pointing out our copyright. For other issues, please refer to LPPL-1.3c. If you want to show us your work, share the URL with us afterwards. Feel free to use our templates by pointing out our copyright. For other issues, please refer to LPPL-1.3c. If you want to show us your work, you can share the URL with us afterwards.
\item \question{What is cross reference?} \item \question{What is cross reference?}
This template is aimed at who are not a complete beginner for \LaTeX{}. Please learn more about \LaTeX{} before using this template. This template is aimed at who are not a complete beginner for \LaTeX{}. Please learn more about \LaTeX{} before using this template.
\item \question{Is the language for code highlighting optional?} \item \question{Is the language for code highlighting optional?}
@@ -636,7 +689,34 @@ We list some FAQs for users to refer to:
\end{enumerate} \end{enumerate}
\chapter{Version History} \chapter{Version History}
We revised our templates now and then. This section shows the version story of ElegantBook. We have nearly 100 submits and 17 releases on GitHub since uploaded. We revised our templates now and then. This section shows the version story of ElegantBook.
\datechange{2022/08/15}{release of v4.4.}
\begin{change}
\item Add custome theorem definition command \lstinline{\elegantnewtheorem};
\item Fix star environment(*) for inner environments (\href{https://github.com/ElegantLaTeX/ElegantBook/issues/167}{issue \#167});
\item Change English fonts from TeX Gyre Termes to TeX Gyre TermesX;
\item Re-construct some theorem environments to enchance compatibility;
\item Remove Gitee repo due the privacy policy;
\item Re-open Github pull requests.
\end{change}
\datechange{2022/04/09}{release of v4.3.}
\begin{change}
\item Remove part newtx settings, set TeX Gyre Termes/Heros fonts under \hologo{XeLaTeX}.
\item Fix Chinese fonts in the theorem environments.
\item Add theorem counter option, \lstinline{thmcnt=section}.
\item Add bib option \lstinline{bibend}, which can take value of biber and bibtex.
\item \textbf{! Warnings}: The multilingual option may cause some unexpected errors, you can report in this \href{https://github.com/ElegantLaTeX/ElegantBook/issues/170}{issue}.
\end{change}
\datechange{2022/03/08}{release of v4.2.} \datechange{2022/03/08}{release of v4.2.}
@@ -644,7 +724,6 @@ We revised our templates now and then. This section shows the version story of E
\item Bug fix due to the update of newtx fonts; \item Bug fix due to the update of newtx fonts;
\item Add `Chapter' in TOC, and redefine \lstinline{\chaptername} to unify the logic under different languages; \item Add `Chapter' in TOC, and redefine \lstinline{\chaptername} to unify the logic under different languages;
\item Add language option for Japanese, \lstinline{lang=jp}. \item Add language option for Japanese, \lstinline{lang=jp}.
\item \textbf{! Warnings}: Due to this `urgent' fonts bug and TOC modification, the multilingual option may cause some unexpected errors, you can report in this \href{https://github.com/ElegantLaTeX/ElegantBook/issues/170}{issue}, I will fix it after the releases of \TeX{} Live 2022.
\end{change} \end{change}
@@ -695,12 +774,12 @@ We revised our templates now and then. This section shows the version story of E
\item Revise \lstinline{problemset}. \item Revise \lstinline{problemset}.
\end{change} \end{change}
\nocite{en2,en3} \nocite{en2,en3}
\printbibliography[heading=bibintoc, title=\ebibname] \printbibliography[heading=bibintoc, title=\ebibname]
\appendix \appendix
% \renewcommand\chaptername{\eappendix \thechapter}
\chapter{Mathematical Tools} \chapter{Mathematical Tools}

View File

@@ -8,10 +8,9 @@
%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%
% % !Mode:: "TeX:UTF-8" % % !Mode:: "TeX:UTF-8"
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesClass{elegantbook}[2022/03/08 v4.2 ElegantBook document class] \ProvidesClass{elegantbook}[2022/04/09 v4.3 ElegantBook document class]
%%% patch for newtx v1.7 or later
\IfFileExists{newtx.sty}{\PassOptionsToPackage{nofontspec}{newtxtext}}{}
%%% %%%
\RequirePackage{kvoptions} \RequirePackage{kvoptions}
\RequirePackage{etoolbox} \RequirePackage{etoolbox}
@@ -28,6 +27,7 @@
\DeclareStringOption[marginfalse]{marginpar} \DeclareStringOption[marginfalse]{marginpar}
\DeclareStringOption[onecol]{toc} \DeclareStringOption[onecol]{toc}
\DeclareStringOption{scheme} \DeclareStringOption{scheme}
% ----- backward compatibility % ----- backward compatibility
\DeclareVoidOption{green}{\ekv{color=green}} \DeclareVoidOption{green}{\ekv{color=green}}
\DeclareVoidOption{cyan}{\ekv{color=cyan}} \DeclareVoidOption{cyan}{\ekv{color=cyan}}
@@ -35,10 +35,10 @@
\DeclareVoidOption{gray}{\ekv{color=gray}} \DeclareVoidOption{gray}{\ekv{color=gray}}
\DeclareVoidOption{black}{\ekv{color=black}} \DeclareVoidOption{black}{\ekv{color=black}}
\DeclareVoidOption{nocolor}{\ekv{color=none}} \DeclareVoidOption{nocolor}{\ekv{color=none}}
\DeclareStringOption[ctexfont]{chinesefont}
\DeclareVoidOption{chinese}{\ekv{scheme=chinese}} \DeclareVoidOption{chinese}{\ekv{scheme=chinese}}
\DeclareStringOption[ctexfont]{chinesefont}
\DeclareVoidOption{ctexfont}{\ekv{chinesefont=ctexfont}} \DeclareVoidOption{ctexfont}{\ekv{chinesefont=ctexfont}}
\DeclareVoidOption{founder}{\ekv{chinesefont=founder}} \DeclareVoidOption{founder}{\ekv{chinesefont=founder}}
\DeclareVoidOption{nofont}{\ekv{chinesefont=nofont}} \DeclareVoidOption{nofont}{\ekv{chinesefont=nofont}}
@@ -46,7 +46,13 @@
\DeclareVoidOption{en}{\ekv{lang=en}} \DeclareVoidOption{en}{\ekv{lang=en}}
\DeclareVoidOption{cn}{\ekv{lang=cn}} \DeclareVoidOption{cn}{\ekv{lang=cn}}
\DeclareVoidOption{it}{\ekv{lang=it}} \DeclareVoidOption{it}{\ekv{lang=it}}
\DeclareVoidOption{fr}{\ekv{lang=fr}}
\DeclareVoidOption{nl}{\ekv{lang=nl}}
\DeclareVoidOption{hu}{\ekv{lang=hu}}
\DeclareVoidOption{de}{\ekv{lang=de}}
\DeclareVoidOption{mn}{\ekv{lang=mn}}
\DeclareVoidOption{pt}{\ekv{lang=pt}} \DeclareVoidOption{pt}{\ekv{lang=pt}}
\DeclareVoidOption{jp}{\ekv{lang=jp}}
\DeclareVoidOption{fancy}{\ekv{mode=fancy}} \DeclareVoidOption{fancy}{\ekv{mode=fancy}}
\DeclareVoidOption{simple}{\ekv{mode=simple}} \DeclareVoidOption{simple}{\ekv{mode=simple}}
@@ -60,7 +66,6 @@
\DeclareStringOption[numeric-comp]{citestyle} \DeclareStringOption[numeric-comp]{citestyle}
\DeclareStringOption[numeric]{bibstyle} \DeclareStringOption[numeric]{bibstyle}
\DeclareVoidOption{newtx}{\ekv{math=newtx}} \DeclareVoidOption{newtx}{\ekv{math=newtx}}
\DeclareVoidOption{mtpro2}{\ekv{math=mtpro2}} \DeclareVoidOption{mtpro2}{\ekv{math=mtpro2}}
\DeclareVoidOption{cm}{\ekv{math=cm}} \DeclareVoidOption{cm}{\ekv{math=cm}}
@@ -72,6 +77,14 @@
\DeclareVoidOption{onecol}{\ekv{toc=onecol}} \DeclareVoidOption{onecol}{\ekv{toc=onecol}}
\DeclareVoidOption{twocol}{\ekv{toc=twocol}} \DeclareVoidOption{twocol}{\ekv{toc=twocol}}
\DeclareStringOption[chapter]{thmcnt}
\DeclareVoidOption{chapter}{\ekv{thmcnt=chapter}}
\DeclareVoidOption{section}{\ekv{thmcnt=section}}
\DeclareStringOption[biber]{bibend}
\DeclareVoidOption{biber}{\ekv{bibend=biber}}
\DeclareVoidOption{bibtex}{\ekv{bibend=bibtex}}
% ----- Math option ----- % ----- Math option -----
\newcommand\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}} \newcommand\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}}
@@ -110,6 +123,10 @@
pdfborder={0 0 0}, pdfborder={0 0 0},
linktocpage linktocpage
} }
\newif\ifELEGANT@Hy@later
\@ifpackagelater{hyperref}{2022/05/16}
{\ELEGANT@Hy@latertrue}
{\ELEGANT@Hy@laterfalse}
%% device settings %% device settings
\RequirePackage{geometry} \RequirePackage{geometry}
@@ -137,6 +154,7 @@
footskip=4mm footskip=4mm
}}{\relax} }}{\relax}
\RequirePackage{indentfirst,comment} \RequirePackage{indentfirst,comment}
% fontsetting % fontsetting
\ifdefstring{\ELEGANT@math}{mtpro2}{ \ifdefstring{\ELEGANT@math}{mtpro2}{
@@ -148,34 +166,57 @@
\renewcommand{\baselinestretch}{1.2} \renewcommand{\baselinestretch}{1.2}
\PassOptionsToPackage{no-math}{fontspec} \PassOptionsToPackage{no-math}{fontspec}
\PassOptionsToPackage{quiet}{fontspec}
\RequirePackage{iftex} \RequirePackage{iftex}
\ifpdftex
\RequirePackage{newtxtext}
\RequirePackage[scaled=.90]{helvet}
\else
\RequirePackage[no-math]{fontspec}
\setmainfont{TeXGyreTermesX}[
UprightFont = *-Regular ,
BoldFont = *-Bold ,
ItalicFont = *-Italic ,
BoldItalicFont = *-BoldItalic ,
Extension = .otf ,
Scale = 1.0]
\setsansfont{texgyreheros}[
UprightFont = *-regular ,
BoldFont = *-bold ,
ItalicFont = *-italic ,
BoldItalicFont = *-bolditalic ,
Extension = .otf ,
Scale = 0.9]
\fi
\ifdefstring{\ELEGANT@lang}{cn}{ \ifdefstring{\ELEGANT@lang}{cn}{
\ifXeTeX
\ifdefstring{\ELEGANT@chinesefont}{founder}{ \ifdefstring{\ELEGANT@chinesefont}{founder}{
\RequirePackage[UTF8, scheme=plain, fontset=none]{ctex} \RequirePackage[UTF8, scheme=plain, fontset=none]{ctex}
\setCJKmainfont[BoldFont={FZHei-B01},ItalicFont={FZKai-Z03}]{FZShuSong-Z01} \setCJKmainfont[BoldFont={FZHei-B01},ItalicFont={FZKai-Z03}]{FZShuSong-Z01}
\setCJKsansfont[BoldFont={FZHei-B01},ItalicFont={FZHei-B01}]{FZHei-B01} \setCJKsansfont[BoldFont={FZHei-B01}]{FZKai-Z03}
\setCJKmonofont[BoldFont={FZHei-B01},ItalicFont={FZHei-B01}]{FZFangSong-Z02} \setCJKmonofont[BoldFont={FZHei-B01}]{FZFangSong-Z02}
\setCJKfamilyfont{zhsong}{FZShuSong-Z01} \setCJKfamilyfont{zhsong}{FZShuSong-Z01}
\setCJKfamilyfont{zhhei}{FZHei-B01} \setCJKfamilyfont{zhhei}{FZHei-B01}
\setCJKfamilyfont{zhkai}{FZKai-Z03} \setCJKfamilyfont{zhkai}[BoldFont={FZHei-B01}]{FZKai-Z03}
\setCJKfamilyfont{zhfs}{FZFangSong-Z02} \setCJKfamilyfont{zhfs}[BoldFont={FZHei-B01}]{FZFangSong-Z02}
\newcommand*{\songti}{\CJKfamily{zhsong}} \newcommand*{\songti}{\CJKfamily{zhsong}}
\newcommand*{\heiti}{\CJKfamily{zhhei}} \newcommand*{\heiti}{\CJKfamily{zhhei}}
\newcommand*{\kaishu}{\CJKfamily{zhkai}} \newcommand*{\kaishu}{\CJKfamily{zhkai}}
\newcommand*{\fangsong}{\CJKfamily{zhfs}}}{\relax} \newcommand*{\fangsong}{\CJKfamily{zhfs}}}{\relax}
\ifdefstring{\ELEGANT@chinesefont}{nofont}{ \ifdefstring{\ELEGANT@chinesefont}{nofont}{
\RequirePackage[UTF8,scheme=plain,fontset=none]{ctex}}{\relax} \RequirePackage[UTF8,scheme=plain,fontset=none]{ctex}
\xeCJKsetup{AutoFakeBold=true}
}{\relax}
\ifdefstring{\ELEGANT@chinesefont}{ctexfont}{ \ifdefstring{\ELEGANT@chinesefont}{ctexfont}{
\RequirePackage[UTF8,scheme=plain]{ctex}}{\relax} \RequirePackage[UTF8,scheme=plain]{ctex}
\else \xeCJKsetup{AutoFakeBold=true}
\ifdefstring{\ELEGANT@chinesefont}{ctexfont}{ }{\relax}
\RequirePackage[UTF8,scheme=plain]{ctex}}{\relax}
\fi
\AfterEndPreamble{ \AfterEndPreamble{
% \renewcommand{\itshape}{\kaishu}
\setlength\parindent{2\ccwd}} \setlength\parindent{2\ccwd}}
}{\relax} }{\relax}
@@ -203,10 +244,21 @@
\newcommand{\cfs}{\normalfont} \newcommand{\cfs}{\normalfont}
\fi \fi
\RequirePackage{newtxtext}
\RequirePackage{anyfontsize} \RequirePackage{anyfontsize}
\ifdefstring{\ELEGANT@math}{newtx}{ \ifdefstring{\ELEGANT@math}{newtx}{
\let\oldencodingdefault\encodingdefault
\let\oldrmdefault\rmdefault
\let\oldsfdefault\sfdefault
\let\oldttdefault\ttdefault
\def\encodingdefault{T1}
\renewcommand{\rmdefault}{ntxtlf}
\renewcommand{\sfdefault}{qhv}
\renewcommand{\ttdefault}{ntxtt}
\RequirePackage{newtxmath} \RequirePackage{newtxmath}
\let\encodingdefault\oldencodingdefault
\let\rmdefault\oldrmdefault
\let\sfdefault\oldsfdefault
\let\ttdefault\oldttdefault
\let\Bbbk\relax \let\Bbbk\relax
\RequirePackage{esint} \RequirePackage{esint}
%%% use yhmath pkg, uncomment following code %%% use yhmath pkg, uncomment following code
@@ -224,6 +276,7 @@
\DeclareMathSymbol{\prodop}{\mathop}{CMlargesymbols}{"51} \DeclareMathSymbol{\prodop}{\mathop}{CMlargesymbols}{"51}
}{\relax} }{\relax}
% ----- Handle Colors ----- % ----- Handle Colors -----
%% %%
@@ -351,10 +404,9 @@
\RequirePackage[ \RequirePackage[
backend=biber, backend=\ELEGANT@bibend,
citestyle=\ELEGANT@citestyle, citestyle=\ELEGANT@citestyle,
bibstyle=\ELEGANT@bibstyle]{biblatex} bibstyle=\ELEGANT@bibstyle]{biblatex}
\defbibheading{elegantbook}[\ebibname]{#1}
\ifdefstring{\ELEGANT@lang}{cn}{ \ifdefstring{\ELEGANT@lang}{cn}{
\renewcommand{\baselinestretch}{1.3} \renewcommand{\baselinestretch}{1.3}
@@ -800,8 +852,22 @@
\ifdefstring{\ELEGANT@lang}{cn}{ \ifdefstring{\ELEGANT@lang}{cn}{
\ifdefstring{\ELEGANT@scheme}{chinese}{ \ifdefstring{\ELEGANT@scheme}{chinese}{
\newcommand{\xchaptertitle}{\zhnumber{\arabic{chapter}}} }{ \newcommand{\xchaptertitle}{\zhnumber{\arabic{chapter}}} }{
\newcommand{\xchaptertitle}{ \thechapter{} }} }{ \newcommand{\xchaptertitle}{ \thechapter{} }}
\newcommand{\xchaptertitle}{\chaptername~\thechapter~}} % Hyperref 2022/05/16's changelog.txt said
% * nameref is loaded always and earlier (issue#235)
\AtBeginDocument{
\ifELEGANT@Hy@later
\patchcmd{\NR@chapter}%
{\numberline{\thechapter}}{\numberline{\xchaptertitle}}%
{}{\fail}
\else
\patchcmd{\Hy@org@chapter}%
{\numberline{\thechapter}}{\numberline{\xchaptertitle}}%
{}{\fail}
\fi
}
}
{\newcommand{\xchaptertitle}{\chaptername~\thechapter~}}
\setcounter{secnumdepth}{5} \setcounter{secnumdepth}{5}
\titleformat{\chapter}[\style]{\bfseries}{ \titleformat{\chapter}[\style]{\bfseries}{
@@ -822,8 +888,9 @@
%%define the
%%define the note and proof environment %%definition theorem postulate axiom corollary lemma proposition
%%and proof environment
\RequirePackage{pifont,manfnt,bbding} \RequirePackage{pifont,manfnt,bbding}
\RequirePackage[many]{tcolorbox} \RequirePackage[many]{tcolorbox}
% \newlength{\normalparindent} % \newlength{\normalparindent}
@@ -867,49 +934,78 @@
overlay unbroken and last={ overlay unbroken and last={
\node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) { \node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) {
\textcolor{second}{$\heartsuit$}};}}, \textcolor{second}{$\heartsuit$}};}},
propstyle/.style={ prostyle/.style={
common, common,
colframe=third, colframe=third,
colback=third!5, colback=third!5,
colbacktitle=third, colbacktitle=third,
overlay unbroken and last={ overlay unbroken and last={
\node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) { \node[anchor=south east, outer sep=0pt] at (\linewidth-width,0) {
\textcolor{third}{$\spadesuit$}};}},} \textcolor{third}{$\spadesuit$}};}},
% \newtcbtheorem[auto counter,number within=chapter]{definition}{\definitionname}{defstyle}{def} ELEGANT@title/.code n args={2}
\DeclareTColorBox[auto counter,number within=chapter]{definition}{ o t\label g }{ {
common,defstyle, \ifblank{#2}
IfValueTF={#1}{title={\definitionname~\thetcbcounter\ (#1)}}{title=\definitionname~\thetcbcounter}, {\tcbset{title={\csname #1name\endcsname~\thetcbcounter}}}
IfBooleanTF={#2}{label=#3}{}} {\tcbset{title={\csname #1name\endcsname~\thetcbcounter\ (#2)}}}
% \newtcbtheorem[auto counter,number within=chapter]{theorem}{\theoremname}{thmstyle}{thm} },
\DeclareTColorBox[auto counter,number within=chapter]{theorem}{ o t\label g }{ ELEGANT@label/.code n args={2}
common,thmstyle, {
IfValueTF={#1}{title={\theoremname~\thetcbcounter\ (#1)}}{title=\theoremname~\thetcbcounter}, \ifblank{#2}
IfBooleanTF={#2}{label=#3}{}} {}{\tcbset{label={#1:#2}}}
% \newtcbtheorem[auto counter,number within=chapter]{postulate}{\postulatename}{thmstyle}{pos} }
\DeclareTColorBox[auto counter,number within=chapter]{postulate}{ o t\label g }{ }
common,thmstyle,
IfValueTF={#1}{title={\postulatename~\thetcbcounter\ (#1)}}{title=\postulatename~\thetcbcounter}, % define an internal control sequence \ELEGANT@newtheorem for fancy mode's newtheorem
IfBooleanTF={#2}{label=#3}{}} % #1 is the environment name, #2 is the prefix of label, #3 is the style
% \newtcbtheorem[auto counter,number within=chapter]{axiom}{\axiomname}{thmstyle}{axi} % style: thmstyle, defstyle, prostyle
\DeclareTColorBox[auto counter,number within=chapter]{axiom}{ o t\label g }{ % e.g. \ELEGANT@newtheorem{theorem}{thm}{thmstyle}
common,thmstyle, % will define two environments: numbered ``theorem'' and no-numbered ``theorem*''
IfValueTF={#1}{title={\axiomname~\thetcbcounter\ (#1)}}{title=\axiomname~\thetcbcounter}, % WARNING FOR MULTILINGUAL: this cs will automatically find \theoremname's definition,
IfBooleanTF={#2}{label=#3}{}} % WARNING FOR MULTILINGUAL: it should be defined in language settings.
% \newtcbtheorem[auto counter,number within=chapter]{corollary}{\corollaryname}{thmstyle}{cor} \newcommand{\ELEGANT@newtheorem}[3]{
\DeclareTColorBox[auto counter,number within=chapter]{corollary}{ o t\label g }{ \ifcsundef{#1name}{%
common,thmstyle, \ClassError{elegantbook}{%
IfValueTF={#1}{title={\corollaryname~\thetcbcounter\ (#1)}}{title=\corollaryname~\thetcbcounter}, \ #1name undefined, \MessageBreak
IfBooleanTF={#2}{label=#3}{}} Please check in language setting
% \newtcbtheorem[auto counter,number within=chapter]{lemma}{\lemmaname}{thmstyle}{lem} }{}
\DeclareTColorBox[auto counter,number within=chapter]{lemma}{ o t\label g }{ }{\relax}
common,thmstyle, \DeclareTColorBox[auto counter,number within=\ELEGANT@thmcnt]{#1}{ g o t\label g }{
IfValueTF={#1}{title={\lemmaname~\thetcbcounter\ (#1)}}{title=\lemmaname~\thetcbcounter}, common,#3,
IfBooleanTF={#2}{label=#3}{}} IfValueTF={##1}
% \newtcbtheorem[auto counter,number within=chapter]{proposition}{\propositionname}{propstyle}{pro} {ELEGANT@title={#1}{##1}}
\DeclareTColorBox[auto counter,number within=chapter]{proposition}{ o t\label g }{ {
common,propstyle, IfValueTF={##2}
IfValueTF={#1}{title={\propositionname~\thetcbcounter\ (#1)}}{title=\propositionname~\thetcbcounter}, {ELEGANT@title={#1}{##2}}
IfBooleanTF={#2}{label=#3}{}}}{\relax} {ELEGANT@title={#1}{}}
},
IfValueT={##4}
{
IfBooleanTF={##3}
{label={##4}}
{ELEGANT@label={#2}{##4}}
}
}
\DeclareTColorBox{#1*}{ g o }{
common,#3,
IfValueTF={##1}
{ELEGANT@title={#1}{##1}}
{
IfValueTF={##2}
{ELEGANT@title={#1}{##2}}
{ELEGANT@title={#1}{}}
},
}
}
% define several environment
% we define headers like \definitionname before
\ELEGANT@newtheorem{definition}{def}{defstyle}
\ELEGANT@newtheorem{theorem}{thm}{thmstyle}
\ELEGANT@newtheorem{postulate}{pos}{thmstyle}
\ELEGANT@newtheorem{axiom}{axi}{thmstyle}
\ELEGANT@newtheorem{corollary}{cor}{thmstyle}
\ELEGANT@newtheorem{lemma}{lem}{thmstyle}
\ELEGANT@newtheorem{proposition}{pro}{prostyle}
}{\relax}
\ifdefstring{\ELEGANT@mode}{simple}{ \ifdefstring{\ELEGANT@mode}{simple}{
@@ -919,7 +1015,7 @@
% \let\proofname\relax % \let\proofname\relax
\let\endproof\relax \let\endproof\relax
% declare a new theorem style % declare new theorem styles: defstyle, thmstyle, prostyle
\newtheoremstyle{defstyle}{3pt}{3pt}{\citshape}{-3pt}{ \newtheoremstyle{defstyle}{3pt}{3pt}{\citshape}{-3pt}{
\bfseries\color{main}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}} \bfseries\color{main}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}}
\newtheoremstyle{thmstyle}{3pt}{3pt}{\citshape}{-3pt}{ \newtheoremstyle{thmstyle}{3pt}{3pt}{\citshape}{-3pt}{
@@ -927,21 +1023,85 @@
\newtheoremstyle{prostyle}{3pt}{3pt}{\citshape}{-3pt}{ \newtheoremstyle{prostyle}{3pt}{3pt}{\citshape}{-3pt}{
\bfseries\color{third}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}} \bfseries\color{third}}{}{0.5em}{\thmname{#1} \thmnumber{#2} \thmnote{(#3)}}
% define an internal control sequence \ELEGANT@newtheorem for simple mode's newtheorem
% #1 is the environment name, #2 is the style
% style: thmstyle, defstyle, prostyle
% e.g. \ELEGANT@newtheorem{theorem}{thmstyle}
% will define two environments: numbered ``theorem'' and no-numbered ``theorem*''
% WARNING FOR MULTILINGUAL: this cs will automatically find \theoremname's definition,
% WARNING FOR MULTILINGUAL: it should be defined in language settings.
\newcommand{\ELEGANT@newtheorem}[2]{
\theoremstyle{#2}
\newtheorem{#1}{\csname #1name\endcsname}[\ELEGANT@thmcnt]
\newtheorem*{#1*}{\csname #1name\endcsname}
}
\theoremstyle{defstyle} % definition style % define several environment
\newtheorem{definition}{\definitionname}[chapter] % we define headers like \definitionname before
\ELEGANT@newtheorem{definition}{defstyle}
\theoremstyle{thmstyle} %theorem style \ELEGANT@newtheorem{theorem}{thmstyle}
\newtheorem{theorem}{\theoremname}[chapter] \ELEGANT@newtheorem{postulate}{thmstyle}
\newtheorem{lemma}{\lemmaname}[chapter] \ELEGANT@newtheorem{axiom}{thmstyle}
\newtheorem{corollary}{\corollaryname}[chapter] \ELEGANT@newtheorem{corollary}{thmstyle}
\newtheorem{postulate}{\postulatename}[chapter] \ELEGANT@newtheorem{lemma}{thmstyle}
\newtheorem{axiom}{\axiomname}[chapter] \ELEGANT@newtheorem{proposition}{prostyle}
\theoremstyle{prostyle} % proposition style
\newtheorem{proposition}{\propositionname}[chapter]
}{\relax} }{\relax}
% define an user control sequence \elegantnewtheorem
% #1 is the evironment, #2 is the theorem header
% #3 is the style #4 is the prefix for fancy mode
% style: thmstyle, defstyle, prostyle
% if #4 is given in simple mode, an error will be raised
% if #4 isn't given in fancy mode, the prefix will be set equal to #1,
% and a warning will be raised
\newcommand{\ELEGANT@newtheorem@warning}{}
\newcommand{\ELEGANT@newtheorem@error}{}
\NewDocumentCommand\elegantnewtheorem{ m m m g }
{
\renewcommand{\ELEGANT@newtheorem@warning}{
\ClassWarning{elegantbook}{%
Because you didn't provide a prefix. \MessageBreak
We use #1 as the default prefix. \MessageBreak
You have to use \MessageBreak
\ref{#1:label} to refer a \MessageBreak
\begin{#1}{name}{label} environment. \MessageBreak
}
}
\renewcommand{\ELEGANT@newtheorem@error}{
\ClassError{elegantbook}{%
You can't set a prefix in mode ``simple''.\MessageBreak
Just use \MessageBreak
\elegantnewtheorem{#1}{#2}{#3}
}{%
We are using ``amsthm'' package to \MessageBreak
generate theorem-like theorem. \MessageBreak
The 4th parameter ``prefix'' isn't allowed.
}
}
\expandafter\def\csname #1name\endcsname{#2}
\ifdefstring{\ELEGANT@mode}{simple}{%
\IfValueTF{#4}
{\ELEGANT@newtheorem@error}
{\ELEGANT@newtheorem{#1}{#3}}
}{\relax}
\ifdefstring{\ELEGANT@mode}{fancy}{%
\IfValueTF{#4}
{
\def\ELEGANT@temp@prefix{#4}
\ifdefempty{\ELEGANT@temp@prefix}
{
\ELEGANT@newtheorem{#1}{#1}{#3}
\ELEGANT@newtheorem@warning
}
{\ELEGANT@newtheorem{#1}{#4}{#3}}
}
{
\ELEGANT@newtheorem{#1}{#1}{#3}
\ELEGANT@newtheorem@warning
}
}{\relax}
}
% maingreen-def): example exercise problem solution % maingreen-def): example exercise problem solution
% secondorange-thm: proof note remark % secondorange-thm: proof note remark
% thirdblue-prop): assumptions property conclusion custom % thirdblue-prop): assumptions property conclusion custom
@@ -1013,6 +1173,7 @@
}, },
} }
\newenvironment{introduction}[1][\introductionname]{ \newenvironment{introduction}[1][\introductionname]{
\begin{tcolorbox}[introductionsty,title={#1}] \begin{tcolorbox}[introductionsty,title={#1}]
\begin{multicols}{2} \begin{multicols}{2}
@@ -1024,6 +1185,7 @@
\RequirePackage{adforn} \RequirePackage{adforn}
\newenvironment{problemset}[1][\xchaptertitle~\exercisename]{ \newenvironment{problemset}[1][\xchaptertitle~\exercisename]{
\vspace*{10pt}
\begin{center} \begin{center}
\phantomsection\addcontentsline{toc}{section}{\texorpdfstring{\xchaptertitle~\exercisename}{\exercisename}} \phantomsection\addcontentsline{toc}{section}{\texorpdfstring{\xchaptertitle~\exercisename}{\exercisename}}
% \markboth{#1}{\rightmark} % \markboth{#1}{\rightmark}
@@ -1159,9 +1321,9 @@
breaklines=true, breaklines=true,
keywordstyle=\color{winered}, keywordstyle=\color{winered},
commentstyle=\color{gray}, commentstyle=\color{gray},
emph={elegantpaper,fontenc,fontspec,xeCJK,citestyle,FiraMono,xunicode,newtxmath,figure,fig,image,img,table,itemize,enumerate,newtxtext,newtxtt,ctex,microtype,description,times,booktabs,tabular,PDFLaTeX,XeLaTeX,type1cm,BibTeX,device,color,mode,lang,amsthm,tcolorbox,titlestyle,cite,ctex,listings,base,math,scheme,toc,esint,chinesefont,amsmath,bibstyle,natbib,pgfornament}, emph={elegantpaper,fontenc,fontspec,xeCJK,citestyle,FiraMono,xunicode,figure,fig,image,img,table,itemize,enumerate,ctex,microtype,description,times,booktabs,tabular,PDFLaTeX,XeLaTeX,type1cm,BibTeX,device,color,mode,lang,amsthm,tcolorbox,titlestyle,cite,ctex,listings,base,math,scheme,toc,esint,chinesefont,amsmath,bibstyle,natbib,pgfornament},
emphstyle={\color{frenchplum}}, emphstyle={\color{frenchplum}},
morekeywords={DeclareSymbolFont,SetSymbolFont,toprule,midrule,bottomrule,institute,version,includegraphics,setmainfont,setsansfont,setmonofont ,setCJKmainfont,setCJKsansfont,setCJKmonofont,RequirePackage,figref,tabref,email,maketitle,keywords,definecolor,extrainfo,logo,cover,subtitle,appendix,chapter,hypersetup,mainmatter,frontmatter,tableofcontents,elegantpar,heiti,kaishu,lstset,pagecolor,zhnumber,marginpar,part,equote,marginnote,bioinfo,datechange,listofchange,lvert,lastpage,songti,heiti,fangsong,setCJKfamilyfont,textbf}, morekeywords={DeclareSymbolFont,SetSymbolFont,toprule,midrule,bottomrule,institute,version,includegraphics,setmainfont,setsansfont,setmonofont ,setCJKmainfont,setCJKsansfont,setCJKmonofont,RequirePackage,figref,tabref,email,maketitle,keywords,definecolor,extrainfo,logo,cover,subtitle,appendix,chapter,section,hypersetup,mainmatter,frontmatter,tableofcontents,elegantpar,heiti,kaishu,lstset,pagecolor,zhnumber,marginpar,part,equote,marginnote,bioinfo,datechange,listofchange,lvert,lastpage,songti,heiti,fangsong,setCJKfamilyfont,textbf,elegantnewtheorem,thmcnt,colorlet},
frame=single, frame=single,
tabsize=2, tabsize=2,
rulecolor=\color{structurecolor}, rulecolor=\color{structurecolor},
@@ -1200,7 +1362,7 @@
\begin{enumerate}[label=\small\protect\circled{\arabic*}]}{ \begin{enumerate}[label=\small\protect\circled{\arabic*}]}{
\end{enumerate}} \end{enumerate}}
\addbibresource[location=local]{reference.bib}
\renewcommand\tableofcontents{% \renewcommand\tableofcontents{%
\hypersetup{linktoc=all, linkcolor=black} \hypersetup{linktoc=all, linkcolor=black}
@@ -1218,24 +1380,35 @@
\@starttoc{toc} \@starttoc{toc}
\end{multicols}}{ \end{multicols}}{
\@starttoc{toc}} \@starttoc{toc}}
\if@restonecol\twocolumn\fi} \if@restonecol\twocolumn\fi
\hypersetup{linkcolor=winered}}
\renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else \renewcommand*{\cleardoublepage}{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}% \hbox{}%
\thispagestyle{empty}% \thispagestyle{empty}%
\newpage% beforechap\newpage%
\if@twocolumn\hbox{}\newpage\fi\fi\fi} \if@twocolumn\hbox{}\newpage\fi\fi\fi}
% https://tex.stackexchange.com/questions/56839/chaptername-is-used-even-for-appendix-chapters-in-toc % https://tex.stackexchange.com/questions/56839/chaptername-is-used-even-for-appendix-chapters-in-toc
\usepackage{calc} \RequirePackage{calc}
\usepackage[titles]{tocloft} \RequirePackage[titles]{tocloft}
\ifdefstring{\ELEGANT@lang}{cn}{ \ifdefstring{\ELEGANT@lang}{cn}{
\renewcommand{\cftchappresnum}{\beforechap\space} % \renewcommand{\cftchappresnum}{\beforechap\space}
\renewcommand{\cftchapaftersnum}{\space\afterchap} % \renewcommand{\cftchapaftersnum}{\space\afterchap}
\setlength{\cftchapnumwidth}{\widthof{\textbf{附录~999}}} \setlength{\cftchapnumwidth}{\widthof{\textbf{附录~999}}}
\g@addto@macro\appendix{% \g@addto@macro\appendix{%
% recover \thechapter in the \NR@chapter's \numberline
\ifELEGANT@Hy@later
\patchcmd{\NR@chapter}%
{\numberline{\xchaptertitle}}{\numberline{\thechapter}}%
{}{\fail}
\else
\patchcmd{\Hy@org@chapter}%
{\numberline{\xchaptertitle}}{\numberline{\thechapter}}%
{}{\fail}
\fi
\addtocontents{toc}{% \addtocontents{toc}{%
\protect\renewcommand{\protect\cftchappresnum}{\appendixname\space}% \protect\renewcommand{\protect\cftchappresnum}{\appendixname\space}%
\protect\renewcommand{\protect\cftchapaftersnum}{}% \protect\renewcommand{\protect\cftchapaftersnum}{}%
@@ -1253,3 +1426,6 @@
}% }%
} }
} }
% restore the tt default family to lmodern tt family
\renewcommand\ttdefault{lmtt}

Binary file not shown.