From 29bacc2ed13a988db81626180c697ecff8583672 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 May 2022 03:04:05 +0000 Subject: CTAN sync 202205020304 --- macros/latex/contrib/easybook/easybook.dtx | 11 +- macros/latex/contrib/easybook/easybook.pdf | Bin 591558 -> 591122 bytes macros/latex/contrib/easybook/easybook.tex | 256 ++++++++++++------------- macros/latex/contrib/hvfloat/Changes | 1 + macros/latex/contrib/hvfloat/doc/hvfloat.pdf | Bin 5031955 -> 5039170 bytes macros/latex/contrib/hvfloat/doc/hvfloat.tex | 22 ++- macros/latex/contrib/hvfloat/latex/hvfloat.sty | 53 ++--- 7 files changed, 177 insertions(+), 166 deletions(-) (limited to 'macros/latex/contrib') diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index 07c562221e..2a1c0e3d78 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -15,7 +15,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2022/04/24}{1.68} +\ProvidesExplClass{easybook}{2022/05/01}{1.682} {Easily typesetting Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -303,7 +303,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2022/04/24}{1.68} +\ProvidesExplPackage{easybase}{2022/05/01}{1.682} {Easily typesetting Chinese theses or books} \cs_generate_variant:Nn \dim_set:Nn { NV } @@ -496,7 +496,7 @@ \LoadPackage { - spbmark[both]+ + spbmark[text]+ ulem[normalem]+ enumitem[shortlabels,inline]+ chemformula+siunitx+pifont+ @@ -1142,7 +1142,8 @@ { \cs_set:Npn \@makefnmark { \hbox:n {#1} } } \cs_new_protected:Npn \defdownfntmark #1 { \cs_set:Npn \eb@makefnmark { \hbox:n {#1} } } -\cs_new:Npn \notminipage { \tl_if_eq:NnTF \@mpfn { footnote } } +\cs_new_protected:Npn \notminipage + { \tl_if_eq:NnTF \@mpfn { footnote } } \defupfntmark { \eb_fnmate_format_initial: @@ -2322,7 +2323,7 @@ } % %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2022/04/24}{1.68} +\ProvidesExplFile{eb-tcolorbox.cfg}{2022/05/01}{1.682} {Customization of tcolorbox for easybook} \cs_set_protected:Npn \addtotcbstyle #1#2 diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf index 9dc4327a1a..b0ba222f53 100644 Binary files a/macros/latex/contrib/easybook/easybook.pdf and b/macros/latex/contrib/easybook/easybook.pdf differ diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex index b7cf89b7aa..0525656103 100644 --- a/macros/latex/contrib/easybook/easybook.tex +++ b/macros/latex/contrib/easybook/easybook.tex @@ -21,8 +21,8 @@ name = easybook, color-scheme = blue, title = EASYBOOK使用手册, - version = v1.68, - date = 2022/04/24, + version = v1.682, + date = 2022/05/01, authors = 瞿毅, info = 简便地排版中文学位论文或书籍, email = toquyi@163.com, @@ -239,7 +239,9 @@ \section{文档类选项} \label{sec:document class options} -文档类选项应当在使用 \cls*{easybook} 文档类或 \pkg*{easybase} 宏包(部分支持)时载入,可见\ref{subsec:basic usage} 的例子。选项前带有 \ding{73} 符号表示只可用于文档类,否则文档类与宏包都适用。除了下面列举的选项以外,还支持标准和 \CTeX 文档类的选项。 +文档类选项应当在使用 \cls*{easybook} 文档类或 \pkg*{easybase} 宏包(部分支持)时指定,可见\ref{subsec:basic usage} 的例子。选项前带有 \ding{73} 符号表示只可用于文档类,否则文档类与宏包都适用。除了下面列举的选项以外,还支持标准和 \CTeX 文档类的选项。 + +\subsection{基本选项} \begin{options} \opt{draft} 开启草稿模式会加快编译速度,表现有显示页面边框、行溢出的地方显示黑色方块、图片变成占位方框、显示当前日期和关闭超链接渲染。不使用绘图宏包及依赖于 \pkg*{tcolorbox} 宏包的盒子环境也会增快编译速度,详情见\ref{subsec:box}。 @@ -259,7 +261,7 @@ 是否提供定理功能支持。选项开启时定理样式模块生效,此时会载入 \pkg*{amsthm} 和 \pkg*{thmtools} 宏包。 \end{options} -\subsection{中文字体} +\subsection{配置字体} \begin{options} \keychoice{cjkfont}{adobe,fandol,founder,mac,macnew,macold,ubuntu,windows,none}\dtag 中文字体采用 \CTeX 宏集包含的字库并与其一致,具体配置方案可以查看 \CTeX 使用手册。它与 \option*{fontset} 选项是等效的,如果没有指定 \option{cjkfont} 的值,将会自动检测操作系统并选择相应的字体。 @@ -273,7 +275,6 @@ \end{ctexexam} \end{options} -\subsection{英文字体} \begin{options} \keychoice{font}{noto,times,times*,ebgaramond,libertine,palatino,auto}\dtag\Default{auto} 预置的英文字体相关配置方案如下表所示。这些字体已经包含在了 \TeX Live 发行版中,所以通常不需要再专门安装。如果您想使用其它英文字体,可以使用 \pkg*{fontspec} 宏包的相关命令进行设置。 @@ -294,7 +295,6 @@ } \end{options} -\subsection{数学字体} \begin{options} \keychoice{mathfont}{times,noto,notosans,nc,stix2,charter,ebgaramond,libertine,none}\dtag\Default{times} 选择合适的数学字体,将会加载 \pkg*{newtxmath} 和 \pkg*{bm} 宏包。使用选项 \code{none} 时可以使用 \pkg*{unicode-math} 等其它数学字体宏包定义字体。 @@ -303,125 +303,13 @@ \subsection{\textsf{article} 模式} \begin{options} \keychoice{class}{book,article}\Default{book} - 使用 \cls*{easybook} 文档类可以有两种模式,默认为 \cls*{book} 模式。选用 \code{article} 会变为 \code{oneside} 单面排版,同时使文档编号、结构等与标准 \cls*{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \cs*{chapter} 命令。此时\ref{sec:document command} 中目录命令的 \option{chapter} 选项会失效,将以 \code{section} 标题级别输出目录。如果使用 \cls*{ctexart} 配合 \pkg*{easybase} 宏包,则选项值 \code{book} 会失效。 + 使用 \cls*{easybook} 文档类可以有两种模式,默认为 \cls*{book} 模式。选用 \code{article} 会变为 \code{oneside} 单面排版,同时使文档编号、结构等与标准 \cls*{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \cs*{chapter} 命令。此时\ref{subsec:directory command} 中目录命令的 \option{chapter} 选项会失效,将以 \code{section} 标题级别输出目录。如果使用 \cls*{ctexart} 配合 \pkg*{easybase} 宏包,则选项值 \code{book} 会失效。 \opt{book} 开启 \cls*{book} 书籍模式,与 \keyis*{class}{book} 等效。 \opt{article} 开启 \cls*{article} 文章模式,与 \keyis*{class}{article} 等效。 \end{options} -\section{文档命令} -\label{sec:document command} - -\subsection{文区命令} -\begin{commands} - \command{frontmatter}[\sarg\oarg{编号格式}]\Default{Roman} - 前言区命令。使部分和章标题不编号,带有星号的变体命令不使用 \cs{cleardoublepage} 命令。页码 \meta{编号格式} 可设置为例如 \code{roman} 或 \code{Alph} 等形式。 - \command{mainmatter}[\sarg] - 主文区命令。章标题正常编号且页码为从1开始计数的阿拉伯数字,带有星号的变体命令不使用 \cs{cleardoublepage} 清双页命令。 - \command{backmatter} - 后记区命令。页码格式与编号保持不变,章标题不编号。 - \command{cleardoublepage}[\oarg{页面风格}]\Default{empty} - 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会默认用到清双页命令。 - \command{blankpagestyle}[\marg{页面风格}] - 多出空白页的 \meta{页面风格} 用空白页面风格命令 \cs{blankpagestyle} 全局指定,或使用清双页命令的可选参数局部指定。空白页默认的风格为 \code{empty},即空的页眉页脚。 - \end{commands} - -\subsection{目录命令} -\begin{commands} - \command{tableofcontents}[\sarg\oarg{键值列表}\darg{代码钩子}] - 文档主目录命令。带有星号参数的命令不输出目录标题。\meta{代码钩子} 是当方案 \keyis{plan}{both} 时中文与英文目录之间执行的代码,可以插入目录样式和换页等命令。 - \begin{options} - \keychoice{plan}{cn,bi,both}\Default{cn}\newtag[Exp]% - 文档主目录的输出方案。\code{cn} 只输出中文目录,\code{bi} 只输出英文目录。\code{both} 同时连续输出中文和英文目录,需要与双语目录标题命令 \cs{bichapter} 等或双语标题选项 \option{title} 配合使用。 - \keyval{bicontentsname}{英文目录标题}\Default{Contents}\newtag% - 英文目录的标题,为通用接口命令 \cs*{ctexset} 的选项。 - \end{options} - \command{listoffigures}[\sarg\oarg{键值列表}] - 输出图片目录命令。带有星号参数的命令不输出目录标题。 - \command{listoftables}[\sarg\oarg{键值列表}] - 输出表格目录命令。带有星号参数的命令不输出目录标题。 - \command{listoflstlistings}[\sarg\oarg{键值列表}] - 输出代码目录命令。带有星号参数的命令不输出目录标题。 - - 如果需要部分而不是全文的目录或其它类型的目录,可以查看 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录,可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能,其中 \meta{键值列表} 的选项如下: - \begin{options} - \keyval{level}{标题命令}\newtag% - 设定输出目录标题的命令。如果使用 \option{title} 选项设置了双语标题则需要配合双语标题命令。 - \begin{ctexexam} - \tableofcontents[level = \chapter*] - \listoffigures[level = \bichapter,title = {图片索引,List of Figures}] - \end{ctexexam} - \keyval{multoc}{整数}\Default{2} - 设置目录的排版栏数。\meta{整数} 代表目录栏数,不指定栏数的值则默认为双栏。 - \kvsplit{title}{中文目录标题,英文目录标题} - 用于更改目录的双语标题。标题之间用一个英文逗号分开,对主目录来说前部分为中文目录标题,后部分为英文目录标题,对图表和代码目录来说后部分则是加入英文目录的条目。也可以只有一部分,表示中文目录的标题。 - \keychoice{bilist}{mix,new}\Default{new} - 确定文档主目录中双语标题列表的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出,\code{new} 则在新建的英文目录中输出英文标题。 - \keyval{format}{目录标题格式} - 设置目录标题的格式,在标题级别为 \code{chapter} 或者 \cls*{article} 模式且标题级别为 \code{section} 时有效。 - \keyval{aftertitle}{标题后代码} - 目录标题文本之后插入的代码,生效情形同上。 - \keyval{pagestyle}{页面风格}\Default{empty} - 目录标题所在页的页面格式,仅当目录以 \code{chapter} 级别输出时有效。除了上述选项还支持 \CTeX 键值列表路径 \module*{chapter} 或 \module*{section} 所有的章节标题样式选项。 - \end{options} -\end{commands} - -\subsection{双语标题} -双语目录标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{binumber} 选项更改英文目录中的编号。这个功能是为国内一些高校的学位论文模板的要求设计,在一般情况和英文模式下\textbf{不需要使用}。 -\begin{commands} - \command{bichapter}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}] - \code{chapter} 章级别的双语目录标题命令,具有独立的 \code{bichapter} 计数器。 - \command{bisection}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}] - \code{section} 节级别的双语目录标题命令,具有独立的 \code{bisection} 计数器。 - \command{bisubsection}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}] - \code{subsection} 小节级别的双语目录标题命令,具有独立的 \code{bisubsection} 计数器。 - - 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \cs*{chapter}\sarg{} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文标题,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。默认情况下双语目录的格式是一致的,共享使用 \module*{tocset} 模块的设置,英文目录的章级别标题名及编号的修改方式如下: - \begin{options} - \kvsplit{biname}{英文目录前名字,英文目录后名字}\Module{chapter}\Default{Chapter\cs*{space}} - 更改英文目录 \code{chapter} 级别的标题编号前后名字,类似于 \CTeX 的 \option*{name} 选项。 - \keyval{binmuber}{英文目录数字输出命令}\Default{\cs*{arabic}\Marg{chapter}} - 更改英文目录 \code{chapter} 级别的标题编号输出格式,类似于 \CTeX 的 \option*{number} 选项。 - \end{options} -\end{commands} - -\begin{commands} - \command{appendix}[\splitoarg{前名字,后名字}\darg{数字输出命令}] - 附录起始命令,其后的章节标题变为附录形式。英文目录中附录标题的 \meta{前名字} 为英文附录目录前名字,\meta{后名字} 为英文附录目录后名字。前后名字之间用一个半角逗号分开,也可以只有一部分,表示英文附录目录前名字。\meta{数字输出命令} 为附录标题计数器在英文目录中的编号命令。 - \command{BeforeAddBitoc}[\sarg\marg{英文标题加入目录前的代码}] - 作用于局部范围的英文目录钩子,可以插入标题或目录设置的命令改变英文目录中标题的显示格式,也可以覆盖上述的目录前后名字和编号等设置,带有星号的命令会重置之前的代码,放置在导言区或 \cs{bichapter} 等命令前生效。 -\end{commands} - -\subsection{上标和下标} -上标和下标的功能来自 \pkg*{spbmark} 宏包,下面有三个命令可以用于输出上标和下标。可以使用键值列表的形式对上下标格式进行局部或全局设置,下面命令中两个可选参数的键值列表是等效的。全局设置的详情见\ref{subsubsec:super-sub-script}。 -\begin{commands} - \command{super}[\sarg\oarg{键值列表1}\marg{内容}\oarg{键值列表2}] - 输出上标的命令,与简短命令 \cs{sp} 等效。 - \command{sub}[\sarg\oarg{键值列表1}\marg{内容}\oarg{键值列表2}] - 输出下标的命令,与简短命令 \cs{sb} 等效。用法和参数与上标命令 \cs{super} 类似。 - \command{supersub}[\sarg\oarg{键值列表1}\marg{上标内容}\marg{下标内容}\oarg{键值列表2}] - 同时输出上标和下标的命令,与简短命令 \cs{spb} 等效。 - \command{spbifmath}[\marg{数学模式代码}\marg{文本模式代码}] - 根据上下标处于数学还是文本模式分别设置不同的值,应当在格式命令或偏移距离选项中使用。 - - 上下标命令键值列表中共同的选项如下所示。当下面除 \option{mode} 以外的选项用于 \module*{style} 模块全局设置时,它们将根据前面最近一个命令的类型设定相应值。 - \begin{options} - \keyval{vmove}{刚性长度}\Default{0pt} - 上标或下标的垂直偏移。如果是上下标命令使用则代表上标和上标间的额外垂直距离 \option{vsep}。 - \keyval{hmove}{刚性长度}\Default{0pt} - 上标或下标的水平偏移。如果是上下标命令使用则代表上标和上标的共同偏移。 - \keyval{cmd}{格式命令} - 上标或下标的格式命令选项。最后一个命令可以带有一个参数,这个参数用于接受上标或下标。 - \keyval{height}{刚性长度} - 段落中当前行上标或下标的基线与前一行的间距。 - \keyval{depth}{刚性长度} - 段落中当前行上标或下标的基线与下一行的间距。 - \keychoice{mode}{text,math,match}\Default{match} - 上标或下标的输出格式。可以为文本 \code{text} 或数学 \code{math} 模式。当使用选项 \code{match} 时可以根据当前段落所处的模式自动匹配。 - \end{options} -\end{commands} - \section{接口选项} \label{sec:interface options} \begin{commands} @@ -469,7 +357,7 @@ \keyval{color-every}{HTML颜色代码} 统一设置主题的各部分颜色。参数是6个十六进制数字组成的 \code{HTML} 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 \keyval{multoc}{整数}\Default{2} - 设置目录的排版栏数,与\ref{sec:document command} 中目录命令的同名选项有相同效果。 + 设置目录的排版栏数,与\ref{subsec:directory command} 中目录命令的同名选项有相同效果。 \keybool{withpart}\Default{false} 使章标题跟随部分计数器编号,当开启新的一部分时章编号从1开始。 \keychoice{fntnumwith}{part,chapter,page}\Default{chapter} @@ -616,7 +504,7 @@ \begin{commands} \command{printbibliography}[\oarg{键值列表}] - 两种方式\textbf{均使用}此命令打印参考文献,不同处理后端此命令的 \meta{键值列表} 不同。使用 \hologo{BibTeX} 处理时选项与\ref{sec:document command} 目录命令的选项相同,使用 \hologo{biber} 处理时常用的选项如下: + 两种方式\textbf{均使用}此命令打印参考文献,不同处理后端此命令的 \meta{键值列表} 不同。使用 \hologo{BibTeX} 处理时选项与\ref{subsec:directory command} 目录命令的选项相同,使用 \hologo{biber} 处理时常用的选项如下: \end{commands} \begin{options} @@ -840,13 +728,14 @@ \keychoice{fntext-vmove}{fixed length,match}\Default{0pt} 脚注内容标记的垂直偏移。可以设为刚性长度,或用 \code{match} 匹配 \option*{spvmove} 全局的值。 \keychoice{fnmate-form}{format code,match} - 默认脚注标记的格式,选项 \code{match} 可以匹配 \option*{spcmd} 全局的值。一般配合 \keyis{fnmate-num}{plain} 原生编号形式使用,例如用 \pkg*{circledsteps} 宏包的带圈符号命令 \cs*{Circled} 给脚注标记添加圆圈: + 默认脚注标记的格式,选项 \code{match} 可以匹配 \option*{spcmd} 全局的值。一般配合 \keyis{fnmate-num}{plain} 原生编号形式使用,例如用 \pkg*{circledtext} 宏包的带圈字符命令 \cs*{circledtext} 给脚注标记添加圆圈: \begin{ctexexam} - \usepackage{circledsteps} + \usepackage{circledtext} + \circledtextset{resize = real,width = 0.5em} \ebhdrset { fntext-pos = normal, - fnmate-form = \tiny\Circled + fnmate-form = \circledtext } \end{ctexexam} \begin{commands} @@ -854,7 +743,7 @@ 定义脚注正文标记的格式,与正文标记编号命令 \cs{theupfootnote} 配合使用。 \command{defdownfntmark}[\marg{脚注内容标记格式}] 定义脚注内容标记的格式,与内容标记编号命令 \cs{thedownfootnote} 配合使用。 - \command{notminipage}[\marg{普通页内容}\marg{迷你页内容}] + \command{notminipage}[\marg{普通页内容}\marg{迷你页内容}]\newtag[Chg]% 用于在定义脚注标记的命令中判断当前脚注是否处于迷你页而输出不同的内容。 \command{theupfootnote} 保存正文标记编号类型选项 \option{fnmark-num} 指定的正文标记。 @@ -933,7 +822,7 @@ \command{contentsuse}[\marg{条目名}\marg{扩展名}] 激活名称为 \meta{条目名} 的浮动环境目录定制功能,它使用的目录文件后缀为 \meta{扩展名}。需要在激活条目后再使用命令 \cs{RegisterTocName} 注册选项。 \command{DeclareFloatList}[\marg{条目名}\marg{扩展名}]\newtag% - 声明一个新的 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}} 的浮动环境目录命令,并且支持\ref{sec:document command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,推荐搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有符号 \textcolor{red}{\ding{73}} 表示在声明后可用。下面举一个声明算法目录的例子: + 声明一个新的 \cs*{listof}\meta{条目名}\code{\textcolor{cs}{s}} 的浮动环境目录命令,并且支持\ref{subsec:directory command} 中图表目录命令的机制。使用这个命令要确保将条目加入目录的机制已经存在,推荐搭配 \pkg*{newfloat} 宏包创建新的浮动环境。选项前有符号 \textcolor{red}{\ding{73}} 表示在声明后可用。下面举一个声明算法目录的例子: \begin{ctexexam} \usepackage{newfloat} \DeclareFloatingEnvironment[ @@ -975,7 +864,117 @@ 统一设置所有级别的目录引导线样式。 \end{options} -\section{常用环境} +\section{环境和命令} + +\subsection{文区命令} +\begin{commands} + \command{frontmatter}[\sarg\oarg{编号格式}]\Default{Roman} + 前言区命令。使部分和章标题不编号,带有星号的变体命令不使用 \cs{cleardoublepage} 命令。页码 \meta{编号格式} 可设置为例如 \code{roman} 或 \code{Alph} 等形式。 + \command{mainmatter}[\sarg] + 主文区命令。章标题正常编号且页码为从1开始计数的阿拉伯数字,带有星号的变体命令不使用 \cs{cleardoublepage} 清双页命令。 + \command{backmatter} + 后记区命令。页码格式与编号保持不变,章标题不编号。 + \command{cleardoublepage}[\oarg{页面风格}]\Default{empty} + 清双页命令可以确保下一页文本总在奇数页开始,在奇数页使用它会产生空白偶数页。文区命令 \cs{frontmatter} 和 \cs{mainmatter} 会用到清双页命令,在启用文类选项 \option*{openright} 时标题命令 \cs*{part} 和 \cs*{chapter} 也会默认用到清双页命令。 + \command{blankpagestyle}[\marg{页面风格}] + 多出空白页的 \meta{页面风格} 用空白页面风格命令 \cs{blankpagestyle} 全局指定,或使用清双页命令的可选参数局部指定。空白页默认的风格为 \code{empty},即空的页眉页脚。 + \end{commands} + +\subsection{目录命令} +\label{subsec:directory command} +\begin{commands} + \command{tableofcontents}[\sarg\oarg{键值列表}\darg{代码钩子}] + 文档主目录命令。带有星号参数的命令不输出目录标题。\meta{代码钩子} 是当方案 \keyis{plan}{both} 时中文与英文目录之间执行的代码,可以插入目录样式和换页等命令。 + \begin{options} + \keychoice{plan}{cn,bi,both}\Default{cn}\newtag[Exp]% + 文档主目录的输出方案。\code{cn} 只输出中文目录,\code{bi} 只输出英文目录。\code{both} 同时连续输出中文和英文目录,需要与双语目录标题命令 \cs{bichapter} 等或双语标题选项 \option{title} 配合使用。 + \keyval{bicontentsname}{英文目录标题}\Default{Contents}\newtag% + 英文目录的标题,为通用接口命令 \cs*{ctexset} 的选项。 + \end{options} + \command{listoffigures}[\sarg\oarg{键值列表}] + 输出图片目录命令。带有星号参数的命令不输出目录标题。 + \command{listoftables}[\sarg\oarg{键值列表}] + 输出表格目录命令。带有星号参数的命令不输出目录标题。 + \command{listoflstlistings}[\sarg\oarg{键值列表}] + 输出代码目录命令。带有星号参数的命令不输出目录标题。 + + 如果需要部分而不是全文的目录或其它类型的目录,可以查看 \pkg*{titletoc} 宏包的相关示例。如果需要双语图表目录,可以查看 \pkg*{bicaption} 宏包的相关示例。上面目录命令的可选参数改进了原本单一的功能,其中 \meta{键值列表} 的选项如下: + \begin{options} + \keyval{level}{标题命令}\newtag% + 设定输出目录标题的命令。如果使用 \option{title} 选项设置了双语标题则需要配合双语标题命令。 + \begin{ctexexam} + \tableofcontents[level = \chapter*] + \listoffigures[level = \bichapter,title = {图片索引,List of Figures}] + \end{ctexexam} + \keyval{multoc}{整数}\Default{2} + 设置目录的排版栏数。\meta{整数} 代表目录栏数,不指定栏数的值则默认为双栏。 + \kvsplit{title}{中文目录标题,英文目录标题} + 用于更改目录的双语标题。标题之间用一个英文逗号分开,对主目录来说前部分为中文目录标题,后部分为英文目录标题,对图表和代码目录来说后部分则是加入英文目录的条目。也可以只有一部分,表示中文目录的标题。 + \keychoice{bilist}{mix,new}\Default{new} + 确定文档主目录中双语标题列表的输出排列方式。选项 \code{mix} 使每个英文标题条目在中文目录中跟随对应的中文标题输出,\code{new} 则在新建的英文目录中输出英文标题。 + \keyval{format}{目录标题格式} + 设置目录标题的格式,在标题级别为 \code{chapter} 或者 \cls*{article} 模式且标题级别为 \code{section} 时有效。 + \keyval{aftertitle}{标题后代码} + 目录标题文本之后插入的代码,生效情形同上。 + \keyval{pagestyle}{页面风格}\Default{empty} + 目录标题所在页的页面格式,仅当目录以 \code{chapter} 级别输出时有效。除了上述选项还支持 \CTeX 键值列表路径 \module*{chapter} 或 \module*{section} 所有的章节标题样式选项。 + \end{options} +\end{commands} + +\subsection{双语标题} +双语目录标题命令目前设置了常用的三个级别,它们将中文标题正常输出,并使中英文标题加入双语目录。类似于标准文档类,这三个标题命令分别具有独立的计数器\footnote{默认情况下与普通标题命令共享使用计数器。},并对应 \cs*{the}\meta{计数器} 的值,可以用于 \option{binumber} 选项更改英文目录中的编号。这个功能是为国内一些高校的学位论文模板的要求设计,在一般情况和英文模式下\textbf{不需要使用}。 +\begin{commands} + \command{bichapter}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}] + \code{chapter} 章级别的双语目录标题命令,具有独立的 \code{bichapter} 计数器。 + \command{bisection}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}] + \code{section} 节级别的双语目录标题命令,具有独立的 \code{bisection} 计数器。 + \command{bisubsection}[\sarg\oarg{目录中文标题}\marg{中文标题}\marg{目录英文标题}] + \code{subsection} 小节级别的双语目录标题命令,具有独立的 \code{bisubsection} 计数器。 + + 它们的星号变体命令使文中标题不编号,但是仍然加入双语目录,若英文标题参数空置那么仅加入中文目录而不加入英文目录,这一特点与 \cs*{chapter}\sarg{} 等命令的行为不太一样,在一些情况下会用到。可选参数是目录中的中文标题,默认与中文标题一致,正文标题过长时可用它设置在目录中显示的标题。默认情况下双语目录的格式是一致的,共享使用 \module*{tocset} 模块的设置,英文目录的章级别标题名及编号的修改方式如下: + \begin{options} + \kvsplit{biname}{英文目录前名字,英文目录后名字}\Module{chapter}\Default{Chapter\cs*{space}} + 更改英文目录 \code{chapter} 级别的标题编号前后名字,类似于 \CTeX 的 \option*{name} 选项。 + \keyval{binmuber}{英文目录数字输出命令}\Default{\cs*{arabic}\Marg{chapter}} + 更改英文目录 \code{chapter} 级别的标题编号输出格式,类似于 \CTeX 的 \option*{number} 选项。 + \end{options} +\end{commands} + +\begin{commands} + \command{appendix}[\splitoarg{前名字,后名字}\darg{数字输出命令}] + 附录起始命令,其后的章节标题变为附录形式。英文目录中附录标题的 \meta{前名字} 为英文附录目录前名字,\meta{后名字} 为英文附录目录后名字。前后名字之间用一个半角逗号分开,也可以只有一部分,表示英文附录目录前名字。\meta{数字输出命令} 为附录标题计数器在英文目录中的编号命令。 + \command{BeforeAddBitoc}[\sarg\marg{英文标题加入目录前的代码}] + 作用于局部范围的英文目录钩子,可以插入标题或目录设置的命令改变英文目录中标题的显示格式,也可以覆盖上述的目录前后名字和编号等设置,带有星号的命令会重置之前的代码,放置在导言区或 \cs{bichapter} 等命令前生效。 +\end{commands} + +\subsection{上标和下标} +上标和下标的功能来自 \pkg*{spbmark} 宏包,下面有三个命令可以用于输出上标和下标。可以使用键值列表的形式对上下标格式进行局部或全局设置,下面命令中两个可选参数的键值列表是等效的。全局设置的详情见\ref{subsubsec:super-sub-script}。 +\begin{commands} + \command{super}[\sarg\oarg{键值列表1}\marg{内容}\oarg{键值列表2}] + 输出上标的命令,与简短命令 \cs{sp} 等效。 + \command{sub}[\sarg\oarg{键值列表1}\marg{内容}\oarg{键值列表2}] + 输出下标的命令,与简短命令 \cs{sb} 等效。用法和参数与上标命令 \cs{super} 类似。 + \command{supersub}[\sarg\oarg{键值列表1}\marg{上标内容}\marg{下标内容}\oarg{键值列表2}] + 同时输出上标和下标的命令,与简短命令 \cs{spb} 等效。 + \command{spbifmath}[\marg{数学模式代码}\marg{文本模式代码}] + 根据上下标处于数学还是文本模式分别设置不同的值,应当在格式命令或偏移距离选项中使用。 + + 上下标命令键值列表中共同的选项如下所示。当下面除 \option{mode} 以外的选项用于 \module*{style} 模块全局设置时,它们将根据前面最近一个命令的类型设定相应值。 + \begin{options} + \keyval{vmove}{刚性长度}\Default{0pt} + 上标或下标的垂直偏移。如果是上下标命令使用则代表上标和上标间的额外垂直距离 \option{vsep}。 + \keyval{hmove}{刚性长度}\Default{0pt} + 上标或下标的水平偏移。如果是上下标命令使用则代表上标和上标的共同偏移。 + \keyval{cmd}{格式命令} + 上标或下标的格式命令选项。最后一个命令可以带有一个参数,这个参数用于接受上标或下标。 + \keyval{height}{刚性长度} + 段落中当前行上标或下标的基线与前一行的间距。 + \keyval{depth}{刚性长度} + 段落中当前行上标或下标的基线与下一行的间距。 + \keychoice{mode}{text,math,match}\Default{match} + 上标或下标的输出格式。可以为文本 \code{text} 或数学 \code{math} 模式。当使用选项 \code{match} 时可以根据当前段落所处的模式自动匹配。 + \end{options} +\end{commands} \subsection{公式} \begin{environments}\noitemsep @@ -1218,7 +1217,7 @@ \command{makeindex}[\oarg{键值列表}] 用于导言区开启索引收集的命令。这个命令可以重复使用收集多个索引表,以不同的 \meta{索引名} 作为区分,如果仅打印一个索引表没必要重复使用。 \command{printindex}[\sarg\oarg{键值列表}] - 打印不同索引表的命令。这个命令被重新定义,\meta{键值列表} 中的选项与\ref{sec:document command} 其它目录命令相同,但是接口命令 \cs{indexsetup} 的部分选项失效。 + 打印不同索引表的命令。这个命令被重新定义,\meta{键值列表} 中的选项与\ref{subsec:directory command} 其它目录命令相同,但是接口命令 \cs{indexsetup} 的部分选项失效。 \begin{options} \keyval{name}{索引名} 指定输出名为 \meta{索引名} 的索引表,如果只使用一个索引表则默认为项目文件名不需要指定。 @@ -1319,6 +1318,7 @@ \end{version} \shortversion{v = 1.638,date = 2022/03/04,changes = 增加目录条目样式选项注册命令 \cs{RegisterTocName}。} \shortversion{v = 1.644,date = 2022/03/10,changes = 增加浮动环境目录声明命令 \cs{DeclareFloatList} 配合 \pkg*{caption} 宏包。} + \shortversion{v = 1.682,date = 2022/05/01,changes = 将迷你页判断命令 \cs*{notminipage} 改为被保护命令兼容 \pkg*{circledtext} 宏包。} \end{changelog} \nocite{*} diff --git a/macros/latex/contrib/hvfloat/Changes b/macros/latex/contrib/hvfloat/Changes index 5cd0c94e9d..9976f84d27 100644 --- a/macros/latex/contrib/hvfloat/Changes +++ b/macros/latex/contrib/hvfloat/Changes @@ -1,4 +1,5 @@ hvfloat.sty: +2.39 2022-05-01 - fix for using package calc and global length setting 2.38 2022-04-02 - added option l for capWidth to get a caption with linewidth, if also using the option wide for the object 2.37 2022-02-28 - fix bug for doublepage floats in twoside and twocolumn mode diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf index 856cdd1ffb..83ad56d472 100644 Binary files a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf and b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf differ diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.tex b/macros/latex/contrib/hvfloat/doc/hvfloat.tex index 820136ff36..116141dec6 100644 --- a/macros/latex/contrib/hvfloat/doc/hvfloat.tex +++ b/macros/latex/contrib/hvfloat/doc/hvfloat.tex @@ -1,4 +1,4 @@ -%% $Id: hvfloat.tex 488 2022-04-02 19:32:17Z herbert $ +%% $Id: hvfloat.tex 530 2022-05-01 11:01:31Z herbert $ \listfiles \errorcontextlines=100 \documentclass[twoside,paper=a4,usegeometry]{scrartcl} @@ -2610,7 +2610,7 @@ in the inner margin on both pages. \begin{lstlisting} -\hvFloat[doubleFULLPAGE,capPos=right,bindCorr=5mm]% +\hvFloat[doubleFULLPAGE,capPos=after,bindCorr=5mm]% {figure}% {\includegraphics[width=2\paperwidth]{images/r+j3}}% [A doublepage image with a caption on the image.]% @@ -2622,7 +2622,7 @@ in the inner margin on both pages. \end{lstlisting} \marginnote{Fig.~\ref{fig:doubleFULLPAGE0a}} - \hvFloat[doubleFULLPAGE,capPos=right,bindCorr=5mm]% + \hvFloat[doubleFULLPAGE,capPos=after,bindCorr=5mm]% {figure}% {\includegraphics[height=2\paperwidth]{images/r+j3}}% [A doublepage image with a caption on the image.]% @@ -2771,6 +2771,7 @@ There will be pagenumbers and a caption can be rotated on the right of the objec {fig:doublePAGE0} \hvblindtext +\hvblindtext \Blindtext @@ -2813,7 +2814,9 @@ and the rest of the text area is filled with text. \hvblindtext +\Blindtext +\hvblindtext \begin{lstlisting} @@ -2825,13 +2828,13 @@ and the rest of the text area is filled with text. right-hand part of the illustration. The illustration begins on the left edge of the paper. A short form is used for the LOF. The parameter is \texttt{doublePage}}% - {fig:doublePage0} + {fig:doublePage1} \end{lstlisting} \hvFloatSetDefaults -\marginnote{Fig. \ref{fig:doublePage0}} +\marginnote{Fig. \ref{fig:doublePage1}} \hvFloat[doublePage,capPos=right,capVPos=top]% {figure}% {\includegraphics[width=2\textwidth]{images/sonne-meer}}% @@ -2840,7 +2843,9 @@ and the rest of the text area is filled with text. right-hand part of the illustration. The illustration begins on the left edge of the paper. A short form is used for the LOF. The parameter is \texttt{doublePage}}% - {fig:doublePage0} + {fig:doublePage1} + +\Blindtext \Blindtext @@ -2867,7 +2872,8 @@ and the rest of the text area is filled with text. \hvFloatSetDefaults \marginnote{Fig. \ref{fig:doublePage0sH2}} -\hvFloat[doublePage,,bindCorr=inner]% +\hvFloat[doublePage,bindCorr=inner +]% {figure}% {\includegraphics[width=2\textwidth]{images/sonne-meer}}% [A doublepage image with a caption on the right side of the right part.]% @@ -2881,7 +2887,7 @@ and the rest of the text area is filled with text. \Blindtext -%\Blindtext +\Blindtext diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty index c3d8d0e57d..ec23f2c318 100644 --- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty +++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty @@ -1,4 +1,4 @@ -%% $Id: hvfloat.sty 488 2022-04-02 19:32:17Z herbert $ +%% $Id: hvfloat.sty 530 2022-05-01 11:01:31Z herbert $ %% %% %% IMPORTANT NOTICE: @@ -6,6 +6,7 @@ %% This is file `hvfloat.sty', %% %% Herbert Voss +%% Copyright (C) 2003-22 %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -15,8 +16,8 @@ %% `hvfloat' offers rotating of captions and objects for floats %% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{2.38} -\def\filedate{2022/04/02} +\def\fileversion{2.39} +\def\filedate{2022/05/01} %\message{`hvfloat' v\fileversion, \filedate\space (Herbert Voss)} \ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)] \let\hvFloatFileVersion\fileversion @@ -299,13 +300,13 @@ \newcommand\hv@set@noverticalSpace{% no space on top for a float page \let\hv@dblfptop\@dblfptop \let\hv@fptop\@fptop - \global\setlength{\@dblfptop}{0\p@}% - \global\setlength{\@fptop}{0\p@}% + \global\@dblfptop=0\p@ + \global\@fptop=0\p@ } \newcommand\hv@reset@noverticalSpace{% - \global\setlength{\@dblfptop}{\hv@dblfptop}% - \global\setlength{\@fptop}{\hv@fptop}% + \global\@dblfptop=\hv@dblfptop + \global\@fptop=\hv@fptop } \providecommand\figcaption[2][]{}% @@ -560,8 +561,8 @@ \gdef\hv@label{#3}% \ifhv@capbeside\def\@@temp{1}\else\def\@@temp{0}\fi \ifhv@sameHeight\global\hv@global@sameHeighttrue\else\global\hv@global@sameHeightfalse\fi - \global\setlength\hvSet@bindCorrection{\hvSet@bindCorr}% for doublepage objects - \global\setlength\hv@floatCapSep{\hvSet@floatCapSep}% + \global\hvSet@bindCorrection=\hvSet@bindCorr% for doublepage objects + \global\hv@floatCapSep=\hvSet@floatCapSep% % \ifhv@fullpage \def\hvSet@CapWidth{n}% relative value @@ -1099,10 +1100,11 @@ % \def\do@hvFloat@doublePage#1{% image on left and right page with caption on the right page % #1-> 0/1 caption under/right - \global\setlength\hv@leftPageObjectWidth{\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}% - \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}% + \hv@typeout{>>>doublePage: start with definitions of \hv@floatObject}% + \global\hv@leftPageObjectWidth=\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection\relax + \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection\relax \xdef\hv@caption@format@temp{\hv@caption@format}% it gets lost otherwise for next afterpage - \setlength\@dblfpbot{0\p@ \@plus 1fil}% + \@dblfpbot=0\p@ \@plus 1fil% \global\hv@switchTypefalse \setcounter{hv@tempCNTfigA}{\value{figure}}% \setcounter{hv@tempCNTfigB}{\value{figure}}% @@ -1196,8 +1198,8 @@ } % \def\do@hvFloat@doublePageCaptionRightObjectLeft#1{% left part of the object - \hv@typeout{do@hvFloat@doublePageCaptionRightObjectLeft: start}% \begin{\hv@floatType*}[!t] + \hv@typeout{>>>doublePage: start with left side of the object \hv@floatObject}% \hv@set@noverticalSpace \hfuzz=\maxdimen \let\c@hv@tempCNTfigA\c@figure @@ -1225,15 +1227,16 @@ } \def\do@hvFloat@doublePageCaptionRightObjectRight#1{% right part of the object \begin{\hv@floatType*}[!t] + \hv@typeout{>>>doublePage: start with right side of the object \hv@floatObject}% \hv@set@noverticalSpace \hfuzz=\maxdimen \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \global\savebox\hvObjectBox{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}% FÜR DTK + \savebox\hvObjectBox{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection\relax% FÜR DTK \hspace*{-\hv@tempWidthA}% - \global\setlength\hv@leftPageObjectWidth{\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}% FÜR FTK + \hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection\relax% FÜR FTK \savebox\hv@rightBox{\clipbox*{\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}}% - \global\setlength\hv@tempWidthB{\dimexpr\textwidth-\wd\hv@rightBox-\hvSet@bindCorrection+1in+\oddsidemargin-\hv@floatCapSep\relax}% + \hv@tempWidthB=\dimexpr\textwidth-\wd\hv@rightBox-\hvSet@bindCorrection+1in+\oddsidemargin-\hv@floatCapSep\relax \hv@typeout{Height of right box: \the\ht\hv@rightBox}% \hv@typeout{Depth of right box : \the\dp\hv@rightBox}% \ifdim\dp\hv@rightBox > \z@ @@ -1271,11 +1274,11 @@ }}}% \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi \else - \global\setlength\hv@tempWidthB{\dimexpr\textwidth-\wd\hv@rightBox-\hvSet@bindCorrection+1in+\oddsidemargin-\hv@floatCapSep\relax}% + \hv@tempWidthB=\dimexpr\textwidth-\wd\hv@rightBox-\hvSet@bindCorrection+1in+\oddsidemargin-\hv@floatCapSep\relax \hspace{\hv@floatCapSep}% \rlap{\parbox[b][\dimexpr\ht\hv@rightBox+\dp\hv@rightBox][\hv@@capVPos]{\hv@tempWidthB}{% - \abovecaptionskip=0pt% local inside parbox - \belowcaptionskip=0pt% local inside parbox + \abovecaptionskip=0pt % local inside parbox + \belowcaptionskip=0pt % local inside parbox \ifx\hv@shortCap\@empty \caption{\hv@longCap}% \else @@ -1351,8 +1354,8 @@ \global\savebox\hvObjectBox{\hv@floatObject}% \fi \noindent - \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}% - \global\setlength\hv@leftPageObjectWidth{\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}% + \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection% + \global\hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection% \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% \null\newpage\if@twocolumn\null\newpage\fi \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% @@ -1410,9 +1413,9 @@ \fi\fi \checkoddpage \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \global\setlength\hv@tempWidthA{\dimexpr-\oddsidemargin-1in-\parindent+\hvSet@bindCorrection}% the width of the right side offset - \global\setlength\hv@tempWidthB{\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection}% - \global\setlength\hv@leftPageObjectWidth{\dimexpr\paperwidth-\hvSet@bindCorrection}% + \global\hv@tempWidthA=\dimexpr-\oddsidemargin-1in-\parindent+\hvSet@bindCorrection% the width of the right side offset + \global\hv@tempWidthB=\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection% + \global\hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection% % \savebox\hv@leftBox{\clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}% % \savebox\hv@rightBox{\clipbox*{\the\hv@leftPageObjectWidth{} \depth{} \width{} \height}{\usebox\hvObjectBox}}% % \expandafter\captionsetup\expandafter{\hv@caption@format}% -- cgit v1.2.3