ElegantLaTeX/ElegantBook

ElegantBook 4.x 版本集中讨论帖

EthanDeng opened this issue · 44 comments

随着 TeX Live 2020 更新,由于 gbt7714 宏包更新导致全部用户出现编译错误,另外 pgfornament 未被 TeX Live 2020 收录,这两个问题均已在 3.11 版本中修正,修正方案见 #92

考虑到之前有一些悬而未决的问题,加上这次的变动,决定将 3.11 作为 3.x 版本最后版本,3.11 版本也将作为分支保留,之后开发 4.x.x 版本。

特开此帖,大家可以把自己想要在新版本中添加的特性发在这里,有什么想法均可以在这里讨论。

新版本绝对不是为了更新而更新。
新版本原则:尽量保留旧版本中所有特性,并开辟更加稳健,更加易用的特性。

封面(titlepage)

作为一个新版本,此次自然会更新封面,封面的样式目前初步定为 effective python 书籍封面的样式,不过原来封面肯定也会以其他形式保留。

主要考虑:

  • 不再强制要求封面图案
  • 开启新的封面可能

由于 effective python 的封面样式太过常见,因此考虑其他选项。

参考文献(bibliography)

放弃 3.x 版本中的 BibTeX 编译方式,改用 biblatex 宏包支持。

主要考虑:

  • 更加易用

  • 章节文献

  • 更多可能性

  • 完成时间:2020/7/6

  • 版本:4.0.2

定理写法 (theorem class environment)

将定理改回 amsthm 的写法,并在三个模板中统一,具体讨论见 #64 ,也即

\begin{theorem}[theorem name]\label{thm:label}
The content of theorem.
\end{theorem}
  • 完成时间:2020/6/4
  • 版本:4.0.1

书籍元素

补充扉页、封底、前言、后记等书籍元素,标准化电子书籍。

@jin-li 指出,添加索引表、术语表等信息。

#57 #96

字体

放弃目前的字体支持方案,将 type1 改为 opentype。

初步拟定使用 Libertinus 和 Times 作为选项。

  • 完成时间:2020/7/30
  • 版本:4.0.4

Opentype的字体确实有优势,不过好像要用XeLaTex编译。XeLaTeX处理字体有点依赖用户系统里的字体种类,可迁移性略有限制。不知道有没有更好的办法处理字体的问题。

西文字体可以完全使用 tex 发行版中的;中文字体发行版里面也有 fandol,但可能会缺字,不过用了 ctex 宏集的话可以设置为自动选择系统字体。

宏包(packages)

尽量,简化模板中使用的宏包,或者条件调用。

XiangyunHuang/ElegantBookdown#1

有时间的话,仔细核对每一个宏包的用法,以及兼容性,加载顺序问题,包括列出哪些宏包用户可以在导言区修改,以及修改方式,并给出模板宏包列表,这部分内容欢迎补充。

之前作者在 #89 中回复了伪代码,在这里补充一下,我认为算法不一定是伪代码,也可能是公式或者流程图等形式,因此算法数学环境应该是一个通用的有样式的段落环境,用户可以选择填充的内容。当然,如果作者能进一步提供与主题样式相匹配的伪代码环境,那就更好不过了。

可以考虑双封面的效果

可以考虑替代页码让目录条目具有超链功能。在阅读生成文档过程中,页码超链太小,不好点击。

  • 完成时间:2020/7/29
  • 版本:4.0.3

可以考虑增加选项,使得章节标题,数学环境去掉自动编号,方便做笔记;再就是证明环境的结束提示符,可以考虑增加选项,显示实心,显示空心,隐藏;以及增设调整页边距的选项。

希望可以加入“证明”、“原则”环境,比如数据库设计或者设计模式的内容往往会列出很多原则,如果直接用enumerate有时不够醒目
还有就是定理环境自动编号最后面,也就是定理名字前面最后一个“.”改成空格,看起来更简洁一些

#20
latex2e 在 2019-10-01 加了 \labelformat 命令,不需要 cleveref 宏包也能将引用加文字了

看了大家的建议,我觉得能不能增加一个各选项可控制的环境,比如类似“定理”环境,可以自由的控制自动编号、环境名称、颜色等,这样就能把模板运用到更多的场合。

看了大家的建议,我觉得能不能增加一个各选项可控制的环境,比如类似“定理”环境,可以自由的控制自动编号、环境名称、颜色等,这样就能把模板运用到更多的场合。

不实际,你说的这些就是定义环境时需要输入的,提供接口反而增加学习成本,不如自己定义,然而会自己定义的估计就不会用模板了

现在的目录似乎没有便于快速跳转到内容页的超链接,可以考虑一下

现在的目录似乎没有便于快速跳转到内容页的超链接,可以考虑一下

有,点击页码

现在的目录似乎没有便于快速跳转到内容页的超链接,可以考虑一下

有,点击页码

哦哦,原来如此,之前习惯上都是直接点击标题就能跳转的。谢谢!

能不能考虑加入专业词汇表或者名词索引的支持?一般科技类的书籍在最后会有一个本书中出现过的名词的索引,方便读者查阅相关名词的定义。
index

另外也可以考虑在书的前言部分加入符号对照表,一般工程类书籍中往往会使用一些约定熟成的符号表示特定的物理量,以便在公式中使用,例如Re表示雷诺数、Pr表示普朗特数这种。
mark

能不能考虑加入专业词汇表或者名词索引的支持?一般科技类的书籍在最后会有一个本书中出现过的名词的索引,方便读者查阅相关名词的定义。

texdoc lshort-zh-cn, sec 6.2 索引和 makeindex 工具

另外也可以考虑在书的前言部分加入符号对照表,一般工程类书籍中往往会使用一些约定熟成的符号表示特定的物理量,以便在公式中使用,例如Re表示雷诺数、Pr表示普朗特数这种。

用表格去做


这些都跟模板无关,是用户的内容问题,顶多提前加载宏包,模板起不到关键的作用

能不能考虑加入专业词汇表或者名词索引的支持?一般科技类的书籍在最后会有一个本书中出现过的名词的索引,方便读者查阅相关名词的定义。

texdoc lshort-zh-cn, sec 6.2 索引和 makeindex 工具

另外也可以考虑在书的前言部分加入符号对照表,一般工程类书籍中往往会使用一些约定熟成的符号表示特定的物理量,以便在公式中使用,例如Re表示雷诺数、Pr表示普朗特数这种。

用表格去做

这些都跟模板无关,是用户的内容问题,顶多提前加载宏包,模板起不到关键的作用

这个建议主要是考虑到主题风格统一的问题,用户自己使用相关宏包的话,索引和对照表的样式可能与ElegantBook模板的风格不统一。因此我在想官方能不能定制一下这两个环境的样式,使其与模板风格更好地搭配。

这个建议主要是考虑到主题风格统一的问题,用户自己使用相关宏包的话,索引和对照表的样式可能与ElegantBook模板的风格不统一。因此我在想官方能不能定制一下这两个环境的样式,使其与模板风格更好地搭配。

个人感觉没什么能定制的……

能不能考虑加入专业词汇表或者名词索引的支持?一般科技类的书籍在最后会有一个本书中出现过的名词的索引,方便读者查阅相关名词的定义。

texdoc lshort-zh-cn, sec 6.2 索引和 makeindex 工具

另外也可以考虑在书的前言部分加入符号对照表,一般工程类书籍中往往会使用一些约定熟成的符号表示特定的物理量,以便在公式中使用,例如Re表示雷诺数、Pr表示普朗特数这种。

用表格去做
这些都跟模板无关,是用户的内容问题,顶多提前加载宏包,模板起不到关键的作用

这个建议主要是考虑到主题风格统一的问题,用户自己使用相关宏包的话,索引和对照表的样式可能与ElegantBook模板的风格不统一。因此我在想官方能不能定制一下这两个环境的样式,使其与模板风格更好地搭配。

嗯,后续会为贴近纸质出版书籍靠近的。

这个建议主要是考虑到主题风格统一的问题,用户自己使用相关宏包的话,索引和对照表的样式可能与ElegantBook模板的风格不统一。因此我在想官方能不能定制一下这两个环境的样式,使其与模板风格更好地搭配。

个人感觉没什么能定制的……

嗯嗯,仅作为一点不成熟的建议,感谢回复!

看了大家的建议,我觉得能不能增加一个各选项可控制的环境,比如类似“定理”环境,可以自由的控制自动编号、环境名称、颜色等,这样就能把模板运用到更多的场合。

其实模板有一个 custom 环境,支持一个参数,也就是环境名,这个环境用的不是 tcolorbox 做的定理环境,如果你想定制类似于 tcolorbox 的定理环境,最好的方式是去看下 tcolorbox 然后在导言区添加。

颜色分离(color and theme)

为了方便用户修改颜色,将所有用到的字体独立命名。

有很多常见但是非必需的宏包,比如multirow,multicol,makecell,listings等。这些宏包没必要包含在模板中。用户如需要类似功能,可以自行搜索使用

提出这个是因为我之前用elegantbook,现在迁移了一部分代码出来想用自带的book类写一个简单的东西,发现有好多命令并非latex自带,而找到这些命令在哪些宏包中十分困难

看来4.x会有很多重大变化。是否会向下兼容呢?

多语言支持(Multilingual Support)

#85 #90 #108 #111

POINT: babel package and translation, also take care of encoding problem, the counter problem.

有很多常见但是非必需的宏包,比如multirow,multicol,makecell,listings等。这些宏包没必要包含在模板中。用户如需要类似功能,可以自行搜索使用

提出这个是因为我之前用elegantbook,现在迁移了一部分代码出来想用自带的book类写一个简单的东西,发现有好多命令并非latex自带,而找到这些命令在哪些宏包中十分困难

看来4.x会有很多重大变化。是否会向下兼容呢?

其实这句话是矛盾的,不加载那些包的情况下,是无法做到向下兼容的(我理解的没错的话是现在代码未来可用)。只能说我会尽量减少一些包的使用,尽可能减少冲突,其他无法保证。

能不能考虑加入专业词汇表或者名词索引的支持?一般科技类的书籍在最后会有一个本书中出现过的名词的索引,方便读者查阅相关名词的定义。
index

另外也可以考虑在书的前言部分加入符号对照表,一般工程类书籍中往往会使用一些约定熟成的符号表示特定的物理量,以便在公式中使用,例如Re表示雷诺数、Pr表示普朗特数这种。
mark

符号对照表的用法见 List of Symbols for a thesis?,我会添加一点东西进去。

非常期待新的版本,我的所有文档都采用ElegantBook模板包括一些开源文档。希望能加入到样例文档中,如:
http://xuanleng.me/qm/
https://github.com/xuanleng/SiSR
https://gitee.com/xuanleng/qm-exams
https://gitee.com/xuanleng/nle

非常期待新的版本,我的所有文档都采用ElegantBook模板包括一些开源文档。希望能加入到样例文档中,如:
http://xuanleng.me/qm/
https://github.com/xuanleng/SiSR
https://gitee.com/xuanleng/qm-exams
https://gitee.com/xuanleng/nle

非常赞,特别是第一个!

修改 \chaptername

目前的 \chaptername 的逻辑是为了方便中文使用,但是在其他的一些语言模式下,\arabic{chapter} 无法显示,原因未知。

之后,\chaptername 处理的时候特别小心,不修改默认的逻辑。

  • 完成时间:2020/8/4
  • 版本:4.0.5

非常期待新的版本,我的所有文档都采用ElegantBook模板包括一些开源文档。希望能加入到样例文档中,如:
http://xuanleng.me/qm/
https://github.com/xuanleng/SiSR
https://gitee.com/xuanleng/qm-exams
https://gitee.com/xuanleng/nle

太强了,膜拜

非常期待新的版本,我的所有文档都采用ElegantBook模板包括一些开源文档。希望能加入到样例文档中,如:
http://xuanleng.me/qm/
https://github.com/xuanleng/SiSR
https://gitee.com/xuanleng/qm-exams
https://gitee.com/xuanleng/nle

在使用过程中,我做了一些微小的补充:
用的模式是这样的:\documentclass[cn,11pt,chinese,twoside,margintrue]{elegantbook},稍微修改了一下页边距,没之前宽。
额外加了如下宏包,不知道有没有重复:

\usepackage{verbatim}
\usepackage{upgreek}
\usepackage{bm,bbm}
\usepackage{cancel}
\usepackage{amsmath} 
\usepackage{empheq} 

然后个人偏向直立积分符号,加了如下代码:

\DeclareSymbolFont{euexlargesymbols}{U}{euex}{m}{n}%选择有直立积分号的AMS设计的euex字体族
\DeclareMathSymbol{\intop}{\mathop}{euexlargesymbols}{"52}%得到直立的定积分和重积分号
\DeclareMathSymbol{\ointop}{\mathop}{euexlargesymbols}{"48}%得到直立的环路积分号

增加了

\allowdisplaybreaks[4]  % 说是公式如果很长,影响分栏、换行和分页(整块挪动,造成页面空白),可以设置成为自动调整模式。不知道有没有效果。

其他没什么了,整个模板非常好,拿来就用。非常感谢!

在使用过程中,我做了一些微小的补充:
用的模式是这样的:\documentclass[cn,11pt,chinese,twoside,margintrue]{elegantbook},稍微修改了一下页边距,没之前宽。
额外加了如下宏包,不知道有没有重复:
\usepackage{verbatim}
\usepackage{ upgreek }
\usepackage{bm,bbm}
\usepackage{cancel}
\usepackage{amsmath}
\usepackage{empheq}

amsmathbm 是重复了,不过不影响使用

修改 \part 命令

part

  • 完成时间:2020/8/04
  • 版本:4.0.5

章后习题环境

是否可以做出以下改动:

取消章后习题的内层嵌套列表环境并和XSIM宏包的习题功能整合

原elegantbook为了把章后习题部分内层嵌套列表环境 enumerate,对enumerate格式进行过自定义,见为章后习题提供习题环境
但实际使用中,内嵌列表环境容易限制行间公式的排版。因此建议取消内嵌列表环境,可考虑提供一个可选的XSIM宏包的Exercise功能,便于实现排版大量课后习题时的集中输入和分离输出,以及题目和答案的交叉引用。例如:

1

上图中,左下角即导向对应解答页面的超链接。

如果东升有考虑集成XSIM进来,我可以把之前设置在3.10版本里的xsim的接口分享出来,但是因为代码水平有限,部分后续需要修改的地方可能需要东升协助下,比如xsim宏包下章后习题的编号问题,把Exercise 2变成Exercise 1.2(即把章节信息也显示在题号上,第1章的第2题),疑似发现解决方法xsim: What is the correct way to count exercises per section?但在我目前的接口下不适用。

需要注意的是,XSIM宏包也有定义exercisesolution环境,整合后需要避免和ElegantBook原有的exercisesolution环境相冲突(或许可以把这两个环境改名为elegantexerciseelegantsolution环境?)。

增加章后习题解答环境

仿照章后习题环境

\begin{problemset}
\end{problemset}

增加一个章后习题解答环境,如:

\begin{answerset}
\end{answerset}

@AGJackie
xsim 我不了解,后续我看下吧。

字体

放弃目前的字体支持方案,将 type1 改为 opentype。

初步拟定使用 Libertinus 和 Times 作为选项。

可以加一个选项 none, 让用户自行 \setmainfont

elegantbook里这条命令好像失效了,什么情况?
\renewcommand\theequation{\arabic{equation}}

elegantbook里这条命令好像失效了,什么情况?
\renewcommand\theequation{\arabic{equation}}

请新开一个 issue 进行提问

elegantbook里这条命令好像失效了,什么情况?
\renewcommand\theequation{\arabic{equation}}

请新开一个 issue 进行提问

不好意思,我把两个命令弄反了顺序,
\counterwithin{equation}{chapter}
\renewcommand{\theequation}{\arabic{equation}}
这样就OK了