diff options
Diffstat (limited to 'macros/latex')
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md | 38 | ||||
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx | 4 | ||||
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf | bin | 455237 -> 479012 bytes | |||
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex | 270 | ||||
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx | 393 | ||||
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx | 80 | ||||
-rw-r--r-- | macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx | 4 | ||||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.dtx | 333 | ||||
-rw-r--r-- | macros/latex/contrib/easybook/easybook.pdf | bin | 558693 -> 559755 bytes |
9 files changed, 616 insertions, 506 deletions
diff --git a/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md b/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md index ea102f1f03..b271d2f4f5 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md +++ b/macros/latex/contrib/biblatex-contrib/windycity/CHANGES.md @@ -8,6 +8,38 @@ indicate updates to Windy City's [repository on GitHub](https://github.com/brianchase/windycity "GitHub: brianchase/windycity"). +## 2021-07-07 + +* improved the workflow for titles, subtitles, and the like; no change + in output, except for the following: + + - added support for printing the `subtitle` and `titleaddon` of an + entry cross-referenced by a cross-referenced entry (e.g. if you + cite an article cross-referenced to a volume cross-referenced to a + collection, the collection's `subtitle` and `titleaddon` will now + print) + - subsequent citations of `@review` entries with titles now have a + similar form as articles with titles (previously, they were the + same as untitled reviews) + - if the `crossref` field of an `@review` entry is defined, the + title of the cross-referenced entry now has the field format of + its entry type (previously, all such titles were in italics, never + in quotation marks) + +* added support for the `ibidpage` preamble option (false by default; + true with the `ibid` preamble option; if true, it suppresses the + `postnote` of a citation if the previous citation on the page is to + the same entry with the same `postnote`) +* added support for the `dashed` preamble option (true by default; if + false, it removes the 3-em dash for repeated names in bibliographies + and reference lists) +* added support for using `annotate` as an entry option, not just as a + preamble option +* fixed `anon` and `anon?` author types for contexts outside the + author's position +* fixed the `shortfirst` preamble option for `@review` entries +* fixed `@review` entries with titles but no authors + ## 2021-05-02 This release brings a long overdue redesign of the workflow for @@ -135,9 +167,9 @@ internals. pseudonymous authors with the value `pseudo` (the `nameaddon` field still works for this and, in fact, remains the only way to list a pseudonymous author's given name) -* added a `nopages` bibliography option to stop automatic printing of - the `pages` field on first citations of `@article` and `@review` - entries (and their aliases) when the `postnote` is blank +* added a `nopages` preamble option to stop automatic printing of the + `pages` field on first citations of `@article` and `@review` entries + (and their aliases) when the `postnote` is blank * added support for the `\fullcite` and `\footfullcite` citation commands * new citation commands: `idemcite`, `idemcites`, `footidemcite`, diff --git a/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx b/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx index 8d932f698f..3f4e5ff013 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx +++ b/macros/latex/contrib/biblatex-contrib/windycity/american-windycity.lbx @@ -1,4 +1,4 @@ -% Last modified: Sun 02 May 2021 01:14:34 PM CDT +% Last modified: Wed 07 Jul 2021 05:45:54 PM CDT % Permission is granted to copy, distribute and/or modify this % software under the terms of the LaTeX Project Public License (LPPL), @@ -11,7 +11,7 @@ % implied warranties of merchantability and fitness for a particular % purpose. -\ProvidesFile{american-windycity.lbx}[2021/05/02 Windy City +\ProvidesFile{american-windycity.lbx}[2021/07/07 Windy City localization module for biblatex] \InheritBibliographyExtras{american} \InheritBibliographyStrings{american} diff --git a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf Binary files differindex 4000a3da1c..55f1a6901c 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf +++ b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.pdf diff --git a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex index 07f1fc504c..58fe3cc079 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex +++ b/macros/latex/contrib/biblatex-contrib/windycity/doc/windycity.tex @@ -1,4 +1,4 @@ -% Last modified: Sun 02 May 2021 01:06:52 PM CDT +% Last modified: Wed 07 Jul 2021 05:46:01 PM CDT \documentclass[11pt,letterpaper,oneside]{article} \usepackage{windycity} @@ -8,7 +8,7 @@ \author{Brian Chase} \email{brianmichaelchase@gmail.com} \website{https://github.com/brianchase/windycity} -\version{2021-05-02} +\version{2021-07-07} \maketitle \begingroup \hypersetup{linkcolor=black} @@ -57,14 +57,14 @@ interest. \subsection{Getting Started} If you already know how to use \biblatex, getting started with Windy -City is easy. The first task is to confirm that \biblatex and Windy -City are installed properly on your system. Since both are included in -some distributions of \LaTeX, you might be able to skip this step. +City is easy. First, confirm that \biblatex and Windy City are +installed properly on your system. Since both are included in some +distributions of \LaTeX, you might already have them. Either way, please consider downloading the most recent release of -Windy City from \begingroup \hypersetup{urlcolor=blue} -\href{https://www.ctan.org/pkg/windycity}{its home on CTAN}. Releases -without the PDF user guide are available from Windy City's +Windy City from its +\begingroup\hypersetup{urlcolor=blue}\href{https://www.ctan.org/pkg/windycity}{home +on CTAN} or \href{https://github.com/brianchase/windycity/releases}{repository on GitHub}. More recent but potentially less reliable updates are available on \href{https://github.com/brianchase/windycity}{the main @@ -237,9 +237,8 @@ A shorter form of this passage appears in \textit{CMOS} feature of the style. For demonstration purposes, though, it's possible.} -% The use of 'shortfirst' below might be confusing. It's necessary to -% simulate the effect of 'short' within a document that otherwise -% gives default output. +% Preamble option 'short' sets 'short' and 'shortfirst' toggles to +% true. Set them to true to simulate the 'short' preamble option. \begin{citeonly} \AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} @@ -283,30 +282,35 @@ explained in section \ref{preamble}, Windy City won't print \textit{ibid.} in reference to a citation on a previous page. A page break here may affect the output.} +% Preamble option 'short' sets 'short' and 'shortfirst' toggles to +% true. Preamble option 'ibid' sets 'ibid', 'ibidpage', and 'short' +% toggles to true. Set all those toggles to true to simulate the +% 'short' and 'ibid' preamble options. + \begin{citeonly} -\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} \item \cite[3]{morrison2004a} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[18]{morrison2004a} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}\toggletrue{ibidpage}} \item \cite[18]{morrison2004a} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[24--26]{morrison2004a} -\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} \item \cite[401-2]{morrison2004b} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[433]{morrison2004b} -\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} \item \cite[37--38]{diaz2008} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}} \item \cite[403]{morrison2004b} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}} \item \cite[152]{diaz2008} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[201-2]{diaz2008} \AtNextMultiCite{\toggletrue{short}\toggletrue{shortfirst}} \item \cites[240]{morrison2004b}[32]{morrison2004a} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}} \item \cite[33]{morrison2004a} \end{citeonly} @@ -329,35 +333,33 @@ and other elements of a citation (see sections \ref{otherfields} and A preamble option is an argument for the \cmd{usepackage} macro that loads \biblatex. Preamble options affect the format of notes, -bibliographies, and reference lists. Some features of the style -require them. - -All options described below are \opt{false} by default. Set them to -\opt{true} by passing the name of the option to \biblatex, with or -without an additional \opt{=true}. In other words, using -\opt{annotate} as an example, the following are equivalent: +bibliographies, and reference lists. Windy City relies on many +preamble options from \biblatex and supports or provides others to +allow you to change the default output. + +% Windy City sets preamble options for \biblatex in +% \file{windycity.bbx}. The list there isn't complete. The style needs +% to set some options to comply with \textit{CMOS}, sets others as a +% precaution, and leaves still others untouched. Users who want +% fine-grained control of the style should look through the list along +% with \biblatex's user guide. + +Many options below are \opt{false} by default. Make an option +\opt{true} by passing its name to \biblatex, with or without +\opt{=true}. Using \opt{annotate} as an example, the following are +equivalent: \begin{verbatim} \usepackage[annotate,style=windycity]{biblatex} \usepackage[annotate=true,style=windycity]{biblatex} \end{verbatim} -Bear in mind that Windy City uses many preamble options native to -\biblatex, a few of which you may want to change. These options are -set in \file{windycity.bbx}. In particular, the style sets -\opt{idemtracker} to \opt{false}. If you set it to \opt{true} (or to -some value that implies \opt{true}), Windy City will detect when the -first citation of a work follows another citation of a work by the -same author and shorten the author's name. Recall from the previous -section the citation of Toni Morrison's \textit{Song of Solomon} -immediately after a citation of her \textit{Beloved}. In a context -like that, do you really need to remind readers of the author's full -name? If you think not, change \opt{idemtracker} to an appropriate -value (see section 3.1.2.3 of \biblatex's user -guide).\footnote{\textit{CMOS} seems to have no policy on this point. -In the 16th edition, however, Figure 14.3 shows consecutive citations -of works by the same author, both of which give the author's full -name.} +If an option is \opt{true} by default, make it \opt{false} by passing +its name with \opt{=false}. Using \opt{doi} as an example: + +\begin{verbatim} + \usepackage[doi=false,style=windycity]{biblatex} +\end{verbatim} \begin{optionlist} @@ -379,17 +381,63 @@ it does filter out chapters of books, books in books, and volumes of collections. For discussion of multivolume works, see section \ref{multivolume}. +\optitem[true]{dashed}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to remove the 3-em dash for repeated names +in bibliographies and reference lists. + +\optitem[true]{doi}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to prevent the \bibfield{doi} field from +printing. + +\optitem[true]{eprint}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to prevent the \bibfield{eprint} field from +printing. For more information about eprints, see section +\ref{datafields}. + \optitem[false]{ibid}{\opt{true}, \opt{false}} \noindent This option controls whether consecutive citations of a work -on the same page receive an \textit{ibid}. The qualification ``on the -same page'' means that \textit{ibid.} always refers to a work cited on -the current page without an \textit{ibid}. The latter isn't a -requirement of \textit{CMOS} but seems reasonable, since it prevents -readers from having to look at another page to find the referent of an -\textit{ibid}. For examples of its output, see section \ref{short} and -\ref{14.34}. As of the 17th edition, \textit{CMOS} discourages the use -of \textit{ibid.} (see \ref{14.34}). +on the same page receive an \textit{ibid}. For examples, see section +\ref{short} and \textit{CMOS} \ref{14.34}. As of the 17th edition, +\textit{CMOS} discourages the use of \textit{ibid.} + +% The qualification ``on the same page'' means that the referent of an +% \textit{ibid.} is never on a different page. The latter isn't a +% requirement of \textit{CMOS} but seems reasonable, since it prevents +% readers from having to look at another page to find the referent of +% an \textit{ibid}. + +\optitem[false]{ibidpage}{\opt{true}, \opt{false}} + +\noindent If \opt{true}, the \bibfield{postnote} field won't print if +the previous citation on the page is of the same entry with the same +\bibfield{postnote}. The \opt{ibid} preamble option uses +\opt{ibidpage}. + +\optitem[false]{idemtracker}{\opt{true}, \opt{false}, \opt{context}, +\opt{strict}, \opt{constrict}} + +\noindent If \opt{true}, the first citation of a work prints with a +shortened author's name if the previous citation is of another work by +the same author. + +Recall \textit{CMOS} \ref{14.34}, where the first citation of Toni +Morrison's \textit{Song of Solomon} immediately follows citations of +her \textit{Beloved}. The default output prints her full name twice, +once for the first citation of \textit{Song of Solomon} and again for +the first citation of \textit{Beloved}. If \opt{idemtracker} is +\opt{true} (or in many contexts any value other than \opt{false}), her +full name prints just once, at the beginning of the series. + +% As for \texit{CMOS}, the 16th edition, Figure 14.3, shows +% consecutive citations of works by the same author, both of which +% give the author's full name. + +For more information on \opt{idemtracker}, see the discussion in +\biblatex's user guide. \optitem[false]{isbn}{\opt{true}, \opt{false}} @@ -427,7 +475,7 @@ bibliography, their results may overlap. \bibfield{pages} field if the \bibfield{postnote} field is blank. This lets you cite the entirety of a work without having to duplicate the content of the \bibfield{pages} field in the \bibfield{postnote}. To -override this feature, use the \opt{nopages} option. +override this feature, use \opt{nopages}. \optitem[false]{reflist}{\opt{true}, \opt{false}} @@ -502,8 +550,7 @@ resulting output consists mainly of the author's name and the work's title. According to \textit{CMOS}, this approach is optional for documents with complete bibliographies. (See \textit{CMOS} \ref{14.23}, also 14.29--14.36.) As with \opt{short}, you may use -\opt{shortfirst} in conjunction with \opt{ibid} for more concise -citations. +\opt{shortfirst} with \opt{ibid} for more concise citations. \optitem[false]{shortlinks}{\opt{true}, \opt{false}} @@ -553,6 +600,11 @@ collection or \textit{vice versa}. Windy City gives priority to the volume. To reverse this for all relevant citations, use \opt{swapvol}. For more information, see section \ref{collorder}. +\optitem[true]{url}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to prevent the \bibfield{url} field from +printing. + \end{optionlist} \subsection{Entry Options} @@ -562,8 +614,44 @@ An entry option goes in the \bibfield{options} field of a work's database entry. It affects the format of that work. For options that affect the format of every work, see section \ref{preamble}. +As with preamble options, many options below are \opt{false} by +default. Make an option \opt{true} by putting its name in the +\bibfield{options} field of a work's bibliography database entry, with +or without \opt{=true}. Using \opt{annotate} as an example, the +following are equivalent: + +\begin{verbatim} + options = {annotate}, + options = {annotate=true}, +\end{verbatim} + +If an option is \opt{true} by default, make it \opt{false} by putting +its name with \opt{=false} in the \bibfield{options} field. Using +\opt{doi} as an example: + +\begin{verbatim} + options = {doi=false}, +\end{verbatim} + \begin{optionlist} +\optitem[false]{annotate}{\opt{true}, \opt{false}} + +\noindent Set \opt{true} to print an entry's \bibfield{annotation} +field. To change the spacing between entries and annotations, change +the value of \cmd{bibitemsep}. + +\optitem[true]{doi}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to prevent the \bibfield{doi} field from +printing. + +\optitem[true]{eprint}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to prevent the \bibfield{eprint} field from +printing. For more information about eprints, see section +\ref{datafields}. + \optitem[false]{isbn}{\opt{true}, \opt{false}} \noindent Use this option to print the ISBN of a particular work in a @@ -719,6 +807,11 @@ bibliographies and long citations, publication information for the collection precedes that of the volume. For more information, see section \ref{collorder}. +\optitem[true]{url}{\opt{true}, \opt{false}} + +\noindent Set \opt{false} to prevent the \bibfield{url} field from +printing. + \end{optionlist} \subsection{Citation Commands} @@ -1164,7 +1257,7 @@ contain: \noindent Note that when \bibfield{date} contains just a year of publication, you may use the classic \bibfield{year} field. -\item[pages] See comments on the \opt{nopages} bibliography option in +\item[pages] See comments on the \opt{nopages} preamble option in section \ref{preamble}. \item[pubstate] This fields indicates when a work is forthcoming (with @@ -1445,10 +1538,9 @@ after the collection's title. As the examples above also indicate, the style supports a variety of editorial roles beyond just editor and translator. They are: compiler, -expander, reviser, and updater. To assign them, you need to use the -editor and translator type fields. Below are some bibliography -database entries for examples in \textit{CMOS} \ref{14.103} and -\ref{14.142}: +expander, reviser, and updater. To assign them, use the editor and +translator type fields. Below are some bibliography database entries +for examples in \textit{CMOS} \ref{14.103} and \ref{14.142}: \begin{verbatim} @Book{schechter2011, @@ -2115,15 +2207,14 @@ and if it lacks certain fields that it shouldn't have, such as a \bibfield{maintitle} field or a \bibfield{volume} field inherited from the cross-referenced entry. You can find the exact details in \file{windycity.bbx}. Just remember that entries like these should -always be cross-referenced to a \bibtype{collection} or one of its +always be cross-referenced to a \bibtype{collection} or to one of its aliases. Since Windy City treats them the same, it makes no difference whether you designate entries for volumes as \bibtype{bookinbook} or \bibtype{inbook}. With one exception, you can get the same output with a \bibtype{book}, \bibtype{collection}, \bibtype{mvbook}, or \bibtype{mvcollection} -entry. As before, the choice of entry type is arbitrary. All four are -equivalent. Here's a counterpart to the previous example using +entry. Here's a counterpart to the previous example using \bibtype{collection}: \begin{verbatim} @@ -2142,21 +2233,22 @@ equivalent. Here's a counterpart to the previous example using } \end{verbatim} -These entries work with \opt{swapvol} if they have \bibfield{volume} -and \bibfield{maintitle} fields, among other conditions. You may -prefer them over \bibfield{bookinbook} or \bibfield{inbook} entries if -you only intend to cite one volume of the collection and have no need -to cite the collection as a whole. You risk trouble, though, if the -volumes of the collection have different publication dates, as they do -for \textit{The Papers of Martin Luther King, Jr}. If the publication -information for this volume goes last, the bibliography and long -citation should list the publication date as \textit{2014}. If the -publication information for the collection goes last, that date is -\textit{1992–}. A \bibtype{book} or \bibtype{collection} entry, -however, has just one field for a publication date, so using -\opt{swapvol} on \bibfield{carson2014} would print \textit{2014}, not -\textit{1992–}. Otherwise, the entry types are interchangeable. You -can find examples of both approaches in \file{windycity.bib}. +These entry types work with \opt{swapvol} if they have +\bibfield{volume} and \bibfield{maintitle} fields, among other +conditions. You may prefer them over \bibfield{bookinbook} or +\bibfield{inbook} entries if you only intend to cite one volume of the +collection and have no need to cite the collection as a whole. You +risk trouble, though, if the volumes of the collection have different +publication dates, as they do for \textit{The Papers of Martin Luther +King, Jr}. If the publication information for this volume goes last, +the bibliography and long citation should list the publication date as +\textit{2014}. If the publication information for the collection goes +last, that date is \textit{1992–}. A \bibtype{book} or +\bibtype{collection} entry, however, has just one field for a +publication date, so using \opt{swapvol} on \bibfield{carson2014} +would print \textit{2014}, not \textit{1992–}. Otherwise, the entry +types are interchangeable. You can find examples of both approaches in +\file{windycity.bib}. Certain entries cross-referenced to entries that work with \opt{swapvol} also work with it. Those entry types are limited to @@ -2249,10 +2341,10 @@ In citations of \textit{The Lisle Letters}, volume numbers and pages are separated by a colon. With \textit{The Complete Tales of Henry James}, only the second citation follows this pattern. In the first, the volume number appears earlier, after the editor's name. Why? -Apparently, \textit{The Lisle Letters} count as a single, multivolume -work because every volume has the same title and publication date. Not -so \textit{The Complete Tales of Henry James}. Its volumes have -different titles and publication dates. +Apparently, \textit{The Lisle Letters} is a single, multivolume work +because every volume has the same title and publication date. Not so +\textit{The Complete Tales of Henry James}. Its volumes have different +titles and publication dates. To get the right output, your bibliography database and citations need to reflect this distinction. Think of it this way: If a multivolume @@ -2329,7 +2421,7 @@ in the bibliography database. Here's the entry for the volume cited in Since the volume number is part of the entry and needs to print in different places depending on the context, don't include it in the \bibfield{postnote}. Let Windy City handle it. Below is the source for -the first and second citations of \textit{The Complete Tales Henry +the first and second citations of \textit{The Complete Tales of Henry James}: \begin{verbatim} @@ -2353,8 +2445,8 @@ Neither type of collection uses cross-referencing in the bibliography database. For \textit{The Lisle Letters}, cross-referencing would introduce needless complexity. A single work should have a single entry, not multiple, cross-referenced entries. For \textit{The -Complete Tales Henry James}, cross-referencing would result in errors -because, with different titles and publication dates, not all +Complete Tales of Henry James}, cross-referencing would result in +errors because, with different titles and publication dates, not all publication data for the collection is true of each volume. To cite the collection as a whole, as in \textit{CMOS} \ref{14.117}, add a separate entry: @@ -2512,29 +2604,29 @@ options, see sections \ref{short} and \ref{preamble}. \noindent With options \opt{short} and \opt{ibid}: \begin{citeonly} -\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} \item \cite[3]{morrison2004a} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[18]{morrison2004a} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}\toggletrue{ibidpage}} \item \cite[18]{morrison2004a} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[24--26]{morrison2004a} -\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} \item \cite[401-2]{morrison2004b} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[433]{morrison2004b} -\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}\toggletrue{shortfirst}} \item \cite[37--38]{diaz2008} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}} \item \cite[403]{morrison2004b} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}} \item \cite[152]{diaz2008} \AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} \item \cite[201-2]{diaz2008} \AtNextMultiCite{\toggletrue{short}\toggletrue{shortfirst}} \item \cites[240]{morrison2004b}[32]{morrison2004a} -\AtNextCitekey{\toggletrue{short}\toggletrue{ibid}} +\AtNextCitekey{\toggletrue{short}} \item \cite[33]{morrison2004a} \end{citeonly} diff --git a/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx b/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx index 76b543d9a6..f7679dc8ad 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx +++ b/macros/latex/contrib/biblatex-contrib/windycity/windycity.bbx @@ -1,4 +1,4 @@ -% Last modified: Sun 02 May 2021 01:14:55 PM CDT +% Last modified: Wed 07 Jul 2021 05:45:49 PM CDT % Permission is granted to copy, distribute and/or modify this % software under the terms of the LaTeX Project Public License (LPPL), @@ -11,7 +11,7 @@ % implied warranties of merchantability and fitness for a particular % purpose. -\ProvidesFile{windycity.bbx}[2021/05/02 Windy City bibliography style +\ProvidesFile{windycity.bbx}[2021/07/07 Windy City bibliography style for biblatex] \@ifpackagelater{biblatex}{2019/08/17} {} @@ -27,7 +27,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \providetoggle{annotate} -\DeclareBiblatexOption{global}[boolean]{annotate}[true]{% +\DeclareBiblatexOption{entry,global}[boolean]{annotate}[true]{% \settoggle{annotate}{#1}}% \DeclareBiblatexOption{global}[boolean]{collsonly}[true]{% @@ -37,6 +37,10 @@ \AtBeginBibliography{\blx@key@bibcheck{collsonly}}} {}} +\providetoggle{dashed} +\DeclareBiblatexOption{global}[boolean]{dashed}[true]{% + \settoggle{dashed}{#1}}% + \providetoggle{doi} \DeclareBiblatexOption{entry,global}[boolean]{doi}[true]{% \settoggle{doi}{#1}} @@ -49,9 +53,14 @@ \DeclareBiblatexOption{global}[boolean]{ibid}[true]{% \ifstrequal{#1}{true} {\toggletrue{ibid}% + \toggletrue{ibidpage}% \toggletrue{short}}% {\togglefalse{ibid}}} +\providetoggle{ibidpage} +\DeclareBiblatexOption{global}[boolean]{ibidpage}[true]{% + \settoggle{ibidpage}{#1}}% + \providetoggle{isbn} \DeclareBiblatexOption{entry,global}[boolean]{isbn}[true]{% \settoggle{isbn}{#1}}% @@ -179,6 +188,7 @@ autopunct=true, block=none, citetracker=context, + dashed=true, date=long, dateabbrev=false, dateusetime=true, @@ -438,25 +448,27 @@ \DeclareDataInheritance{*}{incollection,inbook,letter,review}{% \inherit[override=true]{titlekey}{booktitlekey} \inherit[override=true]{booktitlekey}{bookbooktitlekey} - \inherit{author}{bookauthor} - \inherit{authortype}{bookauthortype} - \inherit{shortauthor}{shortbookauthor} \inherit[override=true]{editor}{editora} \inherit[override=true]{editora}{editorb} \inherit[override=true]{editorb}{editorc} \inherit[override=true]{editortype}{editoratype} \inherit[override=true]{editoratype}{editorbtype} \inherit[override=true]{editorbtype}{editorctype} + \inherit[override=true]{translatortype}{translatoratype} + \inherit[override=true]{translatoratype}{translatorbtype} + \inherit{author}{bookauthor} + \inherit{authortype}{bookauthortype} + \inherit{shortauthor}{shortbookauthor} \inherit{editoraddon}{editoraaddon} \inherit{translator}{translatora} \inherit{translatora}{translatorb} - \inherit[override=true]{translatortype}{translatoratype} - \inherit[override=true]{translatoratype}{translatorbtype} \inherit{title}{booktitle} + \inherit{booktitle}{bookbooktitle} \inherit{subtitle}{booksubtitle} + \inherit{booksubtitle}{bookbooksubtitle} \inherit{titleaddon}{booktitleaddon} + \inherit{booktitleaddon}{bookbooktitleaddon} \inherit{shorttitle}{shortbooktitle} - \inherit{booktitle}{bookbooktitle} \inherit{volume}{bookvolume} \inherit{bookvolume}{bookbookvolume} \inherit{options}{options}} @@ -494,7 +506,6 @@ \let\pluga\empty \let\plugb\empty \let\xtitle\empty -\let\xvolume\empty \let\xeditor\empty \let\yeditor\empty @@ -596,26 +607,37 @@ \ifuseprefix {\usebibmacro{name:delim}{#3#1}% \usebibmacro{name:hook}{#3#1}% - \ifdefvoid{#3}{}{% - \ifcapital - {\mkbibnameprefix{\MakeCapital{#3}}\isdot} - {\mkbibnameprefix{#3}\isdot}% - \ifprefchar{}{\bibnamedelimc}}% - \mkbibnamefamily{#1}\isdot - \ifdefvoid{#4}{}{\bibnamedelimd\mkbibnamesuffix{#4}\isdot}% - \ifdefvoid{#2}{}{\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}} + \mkbibcompletenamefamilygiven{% + \ifdefvoid{#3} + {} + {\ifcapital + {\mkbibnameprefix{\MakeCapital{#3}}\isdot}% + {\mkbibnameprefix{#3}\isdot}% + \ifprefchar{}{\bibnamedelimc}}% + \mkbibnamefamily{#1}\isdot + \ifdefvoid{#4} + {} + {\bibnamedelimd\mkbibnamesuffix{#4}\isdot}% + \ifdefvoid{#2} + {} + {\revsdnamepunct\bibnamedelimd\mkbibnamegiven{#2}\isdot}}} {\usebibmacro{name:delim}{#1}% \usebibmacro{name:hook}{#1}% - \mkbibnamefamily{#1}\isdot - \ifboolexpe{% - test {\ifdefvoid{#2}} - and - test {\ifdefvoid{#3}}} - {} - {\revsdnamepunct}% - \ifdefvoid{#2}{}{\bibnamedelimd\mkbibnamegiven{#2}\isdot}% - \ifdefvoid{#3}{}{\bibnamedelimd\mkbibnameprefix{#3}\isdot}% - \ifdefvoid{#4}{}{\revsdnamepunct\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}} + \mkbibcompletenamefamilygiven{% + \mkbibnamefamily{#1}\isdot + \ifboolexpe{ test {\ifdefvoid{#2}} + and test {\ifdefvoid{#3}}} + {} + {\revsdnamepunct}% + \ifdefvoid{#2} + {} + {\bibnamedelimd\mkbibnamegiven{#2}\isdot}% + \ifdefvoid{#3} + {} + {\bibnamedelimd\mkbibnameprefix{#3}\isdot}% + \ifdefvoid{#4} + {} + {\revsdnamepunct\bibnamedelimd\mkbibnamesuffix{#4}\isdot}}}} \renewcommand*{\mkbibindexname}[4]{% \ifuseprefix @@ -623,16 +645,15 @@ \@firstofone #1% remove spurious braces \ifdefvoid{#4}{}{ #4}% \ifdefvoid{#2}{}{, #2}% - \actualoperator - \ifdefvoid{#3}{}{\MakeCapital{#3} }% - #1% - \ifdefvoid{#4}{}{ #4}% - \ifdefvoid{#2}{}{, #2}} + \ifdefvoid{#3}{}{% + \actualoperator + \MakeCapital{#3} % + #1% + \ifdefvoid{#4}{}{ #4}% + \ifdefvoid{#2}{}{, #2}}} {\@firstofone #1% remove spurious braces - \ifboolexpe{% - test {\ifdefvoid{#2}} - and - test {\ifdefvoid{#3}}} + \ifboolexpe{test {\ifdefvoid{#2}} + and test {\ifdefvoid{#3}}} {} {,}% \ifdefvoid{#2}{}{ #2}% @@ -814,36 +835,29 @@ {} {\ifboolexpr{ togl {collection:ib} and togl {swapvol}} - {\usebibmacro{bookauthor+namelist}}% + {\usebibmacro{author+namelist}{bookauthor}}% {\ifnameundef{author} - {\usebibmacro{bookauthor+namelist}}% - {\usebibmacro{author+namelist}}}}} + {\usebibmacro{author+namelist}{bookauthor}}% + {\usebibmacro{author+namelist}{author}}}}} -\newbibmacro*{author+namelist}{% - \ifboolexpr{ test {\ifnameundef{shortauthor}} +\newbibmacro*{author+namelist}[1]{% + \ifboolexpr{ test {\ifnameundef{short#1}} or togl {cbx:first} or togl {bibliography}} - {\renewcommand*{\cbx@namelist}{author}}% - {\renewcommand*{\cbx@namelist}{shortauthor}}% - \usebibmacro{author+bookauthor+type}}% + {\renewcommand*{\cbx@namelist}{#1}}% + {\renewcommand*{\cbx@namelist}{short#1}}% + \usebibmacro{author+type}{#1}}% -\newbibmacro*{bookauthor+namelist}{% - \ifboolexpr{ test {\ifnameundef{shortbookauthor}} - or togl {bibliography}} - {\renewcommand*{\cbx@namelist}{bookauthor}}% - {\renewcommand*{\cbx@namelist}{shortbookauthor}}% - \usebibmacro{author+bookauthor+type}}% - -\newbibmacro*{author+bookauthor+type}{% - \iffieldundef{\cbx@namelist type} +\newbibmacro*{author+type}[1]{% + \iffieldundef{#1type} {} - {\iffieldequalstr{\cbx@namelist type}{anon} + {\iffieldequalstr{#1type}{anon} {\renewcommand*{\anona}{\bibopenbracket}% \renewcommand*{\anonb}{\bibclosebracket}}% - {\iffieldequalstr{\cbx@namelist type}{anon?} + {\iffieldequalstr{#1type}{anon?} {\renewcommand*{\anona}{\bibopenbracket}% \renewcommand*{\anonb}{\addquestion\bibclosebracket}}% - {\ifboolexpr{ test {\iffieldequalstr{\cbx@namelist type}{pseudo}} + {\ifboolexpr{ test {\iffieldequalstr{#1type}{pseudo}} and not togl {cbx:short}} {\renewcommand*{\anonb}{\space\mkbibbrackets{\bibstring{pseudo}}}} {}}}}} @@ -1283,7 +1297,8 @@ \newbibmacro*{printnames+etc}{% \ifboolexpr{ togl {authposition} - and togl {bibliography}} + and togl {bibliography} + and togl {dashed}} {\usebibmacro{bibnamedash+printnames}}% {\usebibmacro{printnames}}% \usebibmacro{handle}% @@ -1308,8 +1323,8 @@ \newbibmacro*{printnames}{% \ifnameundef{\cbx@namelist} {} - {\anona\pluga\printnames[\cbx@deflabel]{% - \cbx@namelist}\plugb\anonb}}% + {\pluga\anona\printnames[\cbx@deflabel]{% + \cbx@namelist}\anonb\plugb}}% % A screen name precedes 'nameaddon' and can be omitted from short % citations. See CMOS, 17th ed., 14.209. @@ -1359,82 +1374,63 @@ \renewcommand*{\subtitlepunct}{\ifterm{\space}{:\space}}% -\newbibmacro*{longtitle+titleaddon}{% - \iffieldundef{\xtitle title} - {} - {\iftoggle{shortlinks} - {\togglefalse{shortlinks}% - \printtext[bibhyperref]{\usebibmacro{longtitle}}} - {\usebibmacro{longtitle}}% - \usebibmacro{titleaddon}% - \usebibmacro{test:titledupes}% - \clearfield{\xtitle title}}}% test - -\newbibmacro*{longtitle}{% - \printtext[\xtitle title]{% - \printfield[noformat]{\xtitle title}% - \iffieldundef{\xtitle subtitle} +\newbibmacro*{title+labeldate}{% + \usebibmacro{title+titleaddon}{}% + \iftoggle{bibliography} + {\usebibmacro{b:labeldate+extradate}}% + {}} + +\newbibmacro*{title+titleaddon}[1]{% + \iffieldundef{#1title} + {} + {\renewcommand*{\xtitle}{#1}% + \iftoggle{shortlinks} + {\printtext[bibhyperref]{% + \usebibmacro{title+subtitle}{#1}}} + {\usebibmacro{title+subtitle}{#1}}% + \usebibmacro{titleaddon}{#1}% + \clearfield{#1title}}} + +\newbibmacro*{title+subtitle}[1]{% + \printtext[#1title]{% + \printfield[noformat]{#1title}% + \iffieldundef{#1subtitle} {} {\subtitlepunct - \printfield[noformat]{\xtitle subtitle}}% + \printfield[noformat]{#1subtitle}}% \isdot}}% -\newbibmacro*{test:titledupes}{% - \iffieldsequal{title}{booktitle} - {\ifboolexpr{ test {\iffieldundef{subtitle}} - or test {\iffieldsequal{subtitle}{booksubtitle}}} - {\clearfield{booktitle}}% - {}}% test - {}}% test - -\newbibmacro*{titleaddon}{% - \iffieldundef{\xtitle titleaddon} +\newbibmacro*{titleaddon}[1]{% + \iffieldundef{#1titleaddon} {} {\addspace% '\space' has issues with quotation marks - \printfield{\xtitle titleaddon}}} + \printfield{#1titleaddon}}} -\newbibmacro*{title+labelyear}{% - \iftoggle{bibliography} - {\usebibmacro{longtitle+titleaddon}% - \usebibmacro{b:labeldate+extradate}}% - {\ifboolexpr{ test \ifciteseen - or togl {shortfirst}} - {\iftoggle{shortlinks} - {\printtext[bibhyperref]{\usebibmacro{shorttitle}}} - {\usebibmacro{shorttitle}}} - {\usebibmacro{longtitle+titleaddon}}}} - -\newbibmacro*{shorttitle}{% - \ifboolexpr{ togl {collection:bk} - and togl {swapvol}} - {\iffieldundef{shortmaintitle} - {\printfield[title]{maintitle}\isdot}% - {\printfield[title]{shortmaintitle}\isdot}}% - {\ifboolexpr{ togl {collection:ib} - and togl {swapvol}} - {\iffieldundef{shortbooktitle} - {\printfield[title]{booktitle}\isdot}% - {\printfield[title]{shortbooktitle}\isdot}}% - {\printfield[\thefield{entrytype}]{labeltitle}\isdot}}} +\newbibmacro*{shorttitle+shortlinks}{% + \iftoggle{shortlinks} + {\printtext[bibhyperref]{\usebibmacro{shorttitle+crossref}{}}} + {\usebibmacro{shorttitle+crossref}{}}} -\newbibmacro*{shorttitle+crossref}{% - \ifboolexpr{ togl {collection:icbk} +\newbibmacro*{shorttitle+crossref}[1]{% + \ifboolexpr{ togl {collection:#1bk} and togl {swapvol}} - {\iffieldundef{shortmaintitle} - {\printfield[title]{maintitle}\isdot}% - {\printfield[title]{shortmaintitle}\isdot}}% - {\ifboolexpr{ togl {collection:icib} + {\usebibmacro{shorttitle}{main}}% + {\ifboolexpr{ togl {collection:#1ib} and togl {swapvol}} - {\iffieldundef{shortbooktitle} - {\printfield[title]{booktitle}\isdot}% - {\printfield[title]{shortbooktitle}\isdot}}% - {\printfield[\thefield{entrytype}]{labeltitle}\isdot}}} + {\usebibmacro{shorttitle}{book}}% + {\usebibmacro{shorttitle}{label}}}} + +\newbibmacro*{shorttitle}[1]{% + \ifstrequal{#1}{label} + {\printfield[\thefield{entrytype}]{labeltitle}\isdot}% + {\iffieldundef{short#1title} + {\printfield[#1title]{#1title}\isdot}% + {\printfield[#1title]{short#1title}\isdot}}} \renewbibmacro*{booktitle}{% \iffieldundef{booktitle} {} - {\renewcommand*{\xtitle}{book}% - \usebibmacro{longtitle+titleaddon}% + {\usebibmacro{title+titleaddon}{book}% \usebibmacro{bybookauthor+pages}}} \newbibmacro*{bookbooktitle}[1]{% @@ -1443,14 +1439,7 @@ {\ifstrequal{#1}{in} {\newunit\bibstring{in}\space}% {}% needs '%' - \renewcommand*{\xtitle}{bookbook}% - \usebibmacro{longtitle+titleaddon}}} - -\renewbibmacro*{maintitle}{% - \iffieldundef{maintitle} - {} - {\renewcommand*{\xtitle}{main}% - \usebibmacro{longtitle+titleaddon}}} + \usebibmacro{title+titleaddon}{bookbook}}} \newbibmacro*{issuetitle}{% \iffieldundef{issuetitle} @@ -1458,8 +1447,7 @@ {\iffieldequalstr{issuetitle}{special issue} {} {\bibstring{in}\space - \renewcommand*{\xtitle}{issue}% - \usebibmacro{longtitle+titleaddon}% + \usebibmacro{title+titleaddon}{issue}% \usebibmacro{editors:c}{issuetitle}}% \newunit\bibstring{special}% \setunit{\addcomma\space}}} @@ -1470,8 +1458,7 @@ {\newunit \bibstring{origpub}% \space - \renewcommand*{\xtitle}{orig}% - \usebibmacro{longtitle+titleaddon}% + \usebibmacro{title+titleaddon}{orig}% \setunit{\addspace}% not '\setunit{\space}' \printtext[parens]{% \usebibmacro{origlocation}% @@ -1844,7 +1831,7 @@ \DeclareBibliographyDriver{misc}{% \usebibmacro{bibindex}% \usebibmacro{author+bookauthor+etc}% - \usebibmacro{title+labelyear}% + \usebibmacro{title+labeldate}% \newunit \printfield{userb}% \usebibmacro{doi+finentry+etc}}% @@ -1902,7 +1889,7 @@ \newbibmacro*{author+title+etc}{% \usebibmacro{author+bookauthor+etc}% - \usebibmacro{title+labelyear}% + \usebibmacro{title+labeldate}% \usebibmacro{note}% \usebibmacro{editors:b}}% @@ -1910,8 +1897,7 @@ \newunit \usebibmacro{part}% \usebibmacro{issuetitle}% - \renewcommand*{\xtitle}{journal}% - \usebibmacro{longtitle+titleaddon}% + \usebibmacro{title+titleaddon}{journal}% \usebibmacro{journallocation}% \usebibmacro{journalseries}% \usebibmacro{volume}% @@ -1960,20 +1946,19 @@ \ifboolexpr{ togl {collection:bk} and togl {swapvol}} {\usebibmacro{maintitle+note+etc}% - \usebibmacro{volume+number+etc}% - \let\xtitle\empty - \usebibmacro{longtitle+titleaddon}% + \usebibmacro{volume+number+etc}{}% + \usebibmacro{title+titleaddon}{}% \toggletrue{edshift}% \usebibmacro{byauthor}% \usebibmacro{editors:b}% - \usebibmacro{volumes+bookseries+etc}}% - {\usebibmacro{title+labelyear}% + \usebibmacro{volumes+bookseries+etc}{}}% + {\usebibmacro{title+labeldate}{}% \usebibmacro{byauthor}% \iffieldundef{maintitle} {\usebibmacro{note+edition+etc}% - \usebibmacro{volumes+bookseries+etc}}% + \usebibmacro{volumes+bookseries+etc}{}}% {\usebibmacro{editors:b}% - \usebibmacro{volumes+bookseries+etc}% + \usebibmacro{volumes+bookseries+etc}{}% \usebibmacro{maintitle+note+etc}}} \usebibmacro{date+loc+etc}% \usebibmacro{origtitle}}% @@ -1994,7 +1979,7 @@ and not togl {collection:icib}} {\usebibmacro{booktitle}% \usebibmacro{editors:b}}% - {\usebibmacro{title+labelyear}% + {\usebibmacro{title+labeldate}% \usebibmacro{byauthor}% \usebibmacro{editors:b}% \usebibmacro{chapter+in}}}} @@ -2007,7 +1992,7 @@ {\usebibmacro{incollections}}% {\xifinlist{\thefield{crossref}}{\crossreflist} {\ifnumgreater{\value{\thefield{crossref}}}{0} - {\usebibmacro{crossref}% + {\usebibmacro{crossref+entrydata}% \usebibmacro{pages}}% {\usebibmacro{incollections}}} {\listxadd{\crossreflist}{\thefield{crossref}}% @@ -2021,33 +2006,35 @@ and test {\iffieldundef{journaltitle}} and test {\iflistundef{organization}}} {} - {\renewcommand*{\xtitle}{blog}% - \usebibmacro{longtitle+titleaddon}% + {\usebibmacro{title+titleaddon}{blog}% \newunit - \renewcommand*{\xtitle}{journal}% - \usebibmacro{longtitle+titleaddon}% + \usebibmacro{title+titleaddon}{journal}% \newunit \printlist{organization}% \setunit{\addcomma\space}}} \newbibmacro*{reviews}{% - \ifboolexpr{ test {\ifnameundef{author}} - and not test {\ifnameundef{bookauthor}}} - {\savename{bookauthor}{\reviewee}% - \clearname{bookauthor}}% - {\let\reviewee\empty}% - \usebibmacro{author+bookauthor+etc}% - \iffieldundef{title} - {} - {\usebibmacro{title+labelyear}% - \newunit}% + \iftoggle{noauth} + {\bibsentence}% + {\usebibmacro{author+bookauthor+etc}}% + \usebibmacro{title+labeldate}% \usebibmacro{note}% - \usebibmacro{review+title}% + \newunit + \iftoggle{newauth} + {\bibstring{reviewnoauth}}% + {\bibstring{review}}% + \setunit{\space}% + \iffieldundef{crossref} + {\usebibmacro{title+titleaddon}{book}}% + {\entrydata{\thefield{crossref}}{% + {\usebibmacro{title+titleaddon}{}}}} \setunit{\addcomma\space}% - \iftoggle{shortfirst} - {} - {\toggletrue{edshift}% - \usebibmacro{editors:b}}} + \renewcommand*{\pluga}{\bibstring{by}\space}% + \renewcommand*{\cbx@namelist}{bookauthor}% + \usebibmacro{printnames+etc}% + \setunit{\addcomma\space}% + \toggletrue{edshift}% + \usebibmacro{editors:b}}% \newbibmacro*{inst+loc+date}{% \usebibmacro{thesis+type}% @@ -2212,24 +2199,26 @@ {}}} \newbibmacro*{maintitle+note+etc}{% - \usebibmacro{maintitle}% - \usebibmacro{note}% - \usebibmacro{edition}{}% - \usebibmacro{editors:c}{maintitle}}% + \iffieldundef{maintitle} + {} + {\usebibmacro{title+titleaddon}{main}% + \usebibmacro{note}% + \usebibmacro{edition}{}% + \usebibmacro{editors:c}{maintitle}}} -\newbibmacro*{volume+number+etc}{% - \iffieldundef{\xvolume volume} +\newbibmacro*{volume+number+etc}[1]{% + \iffieldundef{#1volume} {} {\usebibmacro{swapvol+pages}% \iffieldundef{series} {\newunit}% {\setunit{\addcomma\space}}% - \iffieldnum{\xvolume volume} - {\printfield[volume]{\xvolume volume}% + \iffieldnum{#1volume} + {\printfield[volume]{#1volume}% \usebibmacro{volume:number}}% {\bibstring{volumes}\space - \printfield[noformat]{\xvolume volume}}% - \clearfield{\xvolume volume}% + \printfield[noformat]{#1volume}}% + \clearfield{#1volume}% \usebibmacro{part}% \iftoggle{collection} {\iftoggle{swapvol} @@ -2248,13 +2237,14 @@ \setunit{\addcomma\space}\bibstring{by}\space}}% {\renewcommand*{\pluga}{\newunit\bibstring{by}\space}}% \renewcommand*{\cbx@namelist}{author}% + \usebibmacro{author+type}{author}% \usebibmacro{printnames+etc}}} -\newbibmacro*{volumes+bookseries+etc}{% +\newbibmacro*{volumes+bookseries+etc}[1]{% \usebibmacro{volumes}% \usebibmacro{bookseries}% \usebibmacro{pages}% - \usebibmacro{volume+number+etc}% + \usebibmacro{volume+number+etc}{#1}% \usebibmacro{book:number}% \usebibmacro{part}}% @@ -2307,6 +2297,7 @@ {\renewcommand*{\pluga}{% \setunit{\addcomma\space}\bibstring{by}\space}% \renewcommand*{\cbx@namelist}{bookauthor}% + \usebibmacro{author+type}{bookauthor}% \usebibmacro{printnames+etc}% \usebibmacro{pages}}} @@ -2331,14 +2322,13 @@ \usebibmacro{note+edition+etc}% \iffieldundef{volume} {\iffieldundef{bookvolume}% - {\renewcommand*{\xvolume}{bookbook}}% - {\renewcommand*{\xvolume}{book}}% - \usebibmacro{volumes+bookseries+etc}}% - {\usebibmacro{volumes+bookseries+etc}}}} + {\usebibmacro{volumes+bookseries+etc}{bookbook}}% + {\usebibmacro{volumes+bookseries+etc}{book}}} + {\usebibmacro{volumes+bookseries+etc}{}}}} \usebibmacro{date+loc+etc}% \usebibmacro{origtitle}}% -\newbibmacro*{crossref}{% +\newbibmacro*{crossref+entrydata}{% \renewcommand*{\cbx@deflabel}{labelname}% \global\toggletrue{cbx:short}% \entrydata{\thefield{crossref}}{% @@ -2346,7 +2336,7 @@ and togl {reflist}} {\usebibmacro{parencite:new}}% {\usebibmacro{author+bookauthor+etc}% - \usebibmacro{shorttitle+crossref}}% + \usebibmacro{shorttitle+crossref}{ic}}% \usebibmacro{cite:volume}}} \newbibmacro*{pages}{% @@ -2359,23 +2349,6 @@ \togglefalse{edshift}}% {}}} -\newbibmacro*{review+title}{% - \iftoggle{newauth} - {\bibcpstring{reviewnoauth}}% - {\bibstring{review}}% - \space - \renewcommand*{\xtitle}{book}% - \usebibmacro{title+labelyear}% - \iftoggle{shortfirst} - {\clearfield{booktitle}}% - {\setunit{\addcomma\space}% - \ifdefempty{\reviewee} - {} - {\restorename{bookauthor}{\reviewee}}% - \renewcommand*{\pluga}{\bibstring{by}\space}% - \renewcommand*{\cbx@namelist}{bookauthor}% - \usebibmacro{printnames+etc}}} - \newbibmacro*{thesis+type}{% \ifentrytype{mathesis} {\bibstring{mathesis}% @@ -2518,17 +2491,16 @@ \iftoggle{swapvol} {\usebibmacro{note}% \usebibmacro{edition}{}% - \usebibmacro{volumes+bookseries+etc}% - \let\xtitle\empty - \usebibmacro{longtitle+titleaddon}% + \usebibmacro{volumes+bookseries+etc}{}% + \usebibmacro{title+titleaddon}{}% \toggletrue{edshift}% \usebibmacro{byauthor}% \usebibmacro{editors:b}}% - {\usebibmacro{volume+number+etc}% + {\usebibmacro{volume+number+etc}{}% \toggletrue{edshift}% \usebibmacro{booktitle}% \usebibmacro{note+edition+etc}% - \usebibmacro{volumes+bookseries+etc}}} + \usebibmacro{volumes+bookseries+etc}{}}} \newbibmacro*{incollections:ic}{% \iftoggle{swapvol} @@ -2537,22 +2509,19 @@ {\usebibmacro{bookbooktitle}{}% \toggletrue{edshift}% \usebibmacro{note+edition+etc}}% - \renewcommand*{\xvolume}{book}% - \usebibmacro{volumes+bookseries+etc}% + \usebibmacro{volumes+bookseries+etc}{book}% \toggletrue{edshift}% \usebibmacro{booktitle}% \usebibmacro{editors:b}}% {\toggletrue{edshift}% \usebibmacro{booktitle}% \usebibmacro{editors:b}% - \renewcommand*{\xvolume}{book}% - \usebibmacro{volume+number+etc}% + \usebibmacro{volume+number+etc}{book}% \iftoggle{collection:icbk} {\usebibmacro{maintitle+note+etc}}% {\usebibmacro{bookbooktitle}{}% \toggletrue{edshift}% \usebibmacro{note+edition+etc}}% - \renewcommand*{\xvolume}{book}% - \usebibmacro{volumes+bookseries+etc}}} + \usebibmacro{volumes+bookseries+etc}{book}}} \endinput diff --git a/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx b/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx index f73248dcf5..f6bbabfb26 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx +++ b/macros/latex/contrib/biblatex-contrib/windycity/windycity.cbx @@ -1,4 +1,4 @@ -% Last modified: Sun 02 May 2021 01:14:43 PM CDT +% Last modified: Wed 07 Jul 2021 05:45:51 PM CDT % Permission is granted to copy, distribute and/or modify this % software under the terms of the LaTeX Project Public License (LPPL), @@ -11,7 +11,7 @@ % implied warranties of merchantability and fitness for a particular % purpose. -\ProvidesFile{windycity.cbx}[2021/05/02 Windy City citation style for +\ProvidesFile{windycity.cbx}[2021/07/07 Windy City citation style for biblatex] \@ifpackagelater{biblatex}{2019/08/17} {} @@ -298,7 +298,8 @@ \newbibmacro*{cite:ibid+loccit}{% \bibcpstring{ibidem}% - \ifloccit + \ifboolexpr{ togl {ibidpage} + and test \ifloccit} {\global\toggletrue{ibid:loccit}}% {\usebibmacro{cite:volume}}} @@ -306,16 +307,19 @@ \ifnameundef{author} {\bibcpstring{reviewnoauth}% \space - \usebibmacro{title+labelyear}}% + \usebibmacro{shorttitle+shortlinks}}% {\usebibmacro{author+bookauthor+etc}}% \usebibmacro{cite:volume}}% \newbibmacro*{cite:author+title+etc}{% \usebibmacro{author+bookauthor+etc}% \iftoggle{noauth} - {\usebibmacro{title+labelyear}}% + {\usebibmacro{shorttitle+shortlinks}}% {}% needs '%' - \usebibmacro{cite:volume}}% + \ifboolexpr{ togl {ibidpage} + and test \ifloccit} + {\global\toggletrue{ibid:loccit}}% + {\usebibmacro{cite:volume}}} \newbibmacro*{cite:short}{% \global\toggletrue{cbx:short}% @@ -323,8 +327,12 @@ \ifentrytype{review} {\usebibmacro{short:review}}% {\usebibmacro{author+bookauthor+etc}% - \usebibmacro{title+labelyear}% - \usebibmacro{cite:volume}}} + \usebibmacro{shorttitle+shortlinks}% + \ifboolexpr{ togl {ibidpage} + and test \ifloccit + and not test \iffirstonpage} + {\global\toggletrue{ibid:loccit}}% + {\usebibmacro{cite:volume}}}} \newbibmacro*{short:multicite}{% \ifboolexpr{ test {\iffieldequals{namehash}{\bbx@lasthash}} @@ -334,16 +342,20 @@ {}} \newbibmacro*{short:review}{% - \ifnameundef{author} - {\bibcpstring{reviewnoauth}}% - {\usebibmacro{author+bookauthor+etc}% - \bibstring{review}}% - \space -% \renewcommand*{\xtitle}{book}% -% \usebibmacro{title+labelyear}% - \iffieldundef{shortbooktitle} - {\printfield[title]{booktitle}\isdot}% - {\printfield[title]{shortbooktitle}\isdot}% + \ifboolexpr{ test {\ifnameundef{author}} + and test {\iffieldundef{title}}} + {\bibcpstring{reviewnoauth}% + \setunit{\space}% + \usebibmacro{shorttitle}{book}}% + {\ifnameundef{author} + {\usebibmacro{shorttitle+shortlinks}}% + {\iffieldundef{title} + {\usebibmacro{author+bookauthor+etc}% + \bibstring{review}% + \setunit{\space}% + \usebibmacro{shorttitle}{book}}% + {\usebibmacro{author+bookauthor+etc}% + \usebibmacro{shorttitle+shortlinks}}}} \usebibmacro{cite:volume}}% \newbibmacro*{cite:volume}{% @@ -444,17 +456,6 @@ {\newunit}% {\setunit{\addcolon\space}}}}} -\newbibmacro*{reference:authpos}{% - \iftoggle{newauth} - {\usebibmacro{author+bookauthor+etc}% - \togglefalse{newauth}% - \clearlist{organization}% - \clearname{author}}% - {\iflistundef{organization} - {\usebibmacro{author+bookauthor+etc}}% - {\printlist{organization}% - \clearlist{organization}}}} - \newbibmacro*{reference:howpublished+etc}{% \ifboolexpr{ test {\iffieldundef{howpublished}} and test {\iffieldundef{year}}} @@ -478,8 +479,8 @@ \usebibmacro{postnote+etc}% \usebibmacro{postpunct+etc}}% -% In this context, '\ifloccit' is always true. Run it earlier, in -% 'cite:ibid', and record the state with 'ibid:loccit'. +% In this context, '\ifloccit' is always true. Run it earlier and +% record the state with the 'loccit' toggle. \newbibmacro*{postnote+etc}{% \iftoggle{ibid:loccit} @@ -558,7 +559,7 @@ \usebibmacro{test:crossref}% \iftoggle{cbx:collection} {\usebibmacro{author+incollection+etc}% - \usebibmacro{crossref}}% + \usebibmacro{crossref+entrydata}}% {\usebibmacro{author+collection+etc}% \usebibmacro{cite:punctuation}% \usebibmacro{volume+page}}} @@ -570,7 +571,7 @@ \usebibmacro{test:crossref}% \iftoggle{cbx:collection} {\usebibmacro{author+incollection+etc}% - \usebibmacro{crossref}}% + \usebibmacro{crossref+entrydata}}% {\usebibmacro{author+incollection+etc}% \usebibmacro{incollections}% \usebibmacro{cite:punctuation}% @@ -578,7 +579,7 @@ \DeclareBibliographyDriver{cite:misc}{% \usebibmacro{author+bookauthor+etc}% - \usebibmacro{title+labelyear}% + \usebibmacro{title+titleaddon}{}% \newunit \printfield{usera}% \newunit}% @@ -598,15 +599,16 @@ \newunit}% \DeclareBibliographyDriver{cite:reference}{% - \usebibmacro{reference:authpos}% + \iftoggle{newauth} + {\usebibmacro{author+bookauthor+etc}% + \clearname{author}}% + {\printlist{organization}}% \usebibmacro{edition}{}% \usebibmacro{reference:howpublished+etc}% \newunit \bibstring{subverbo}\space - \usebibmacro{longtitle+titleaddon}% - \newunit - \renewcommand*{\pluga}{\bibstring{by}\space}% - \usebibmacro{reference:authpos}}% + \usebibmacro{title+titleaddon}{}% + \usebibmacro{byauthor}}% \DeclareBibliographyDriver{cite:review}{% \usebibmacro{newauth}% diff --git a/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx b/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx index 1bdbc03b64..26e92086ca 100644 --- a/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx +++ b/macros/latex/contrib/biblatex-contrib/windycity/windycity.dbx @@ -1,4 +1,4 @@ -\ProvidesFile{windycity.dbx}[2021/05/02 Windy City data model file for +\ProvidesFile{windycity.dbx}[2021/07/07 Windy City data model file for biblatex] \DeclareDatamodelFields[type=field,datatype=literal]{% blogsubtitle, @@ -6,6 +6,8 @@ blogtitleaddon, bookauthortype, bookbooktitle, + bookbooksubtitle, + bookbooktitleaddon, bookvolume, bookbookvolume, booktitlekey, diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx index 1b04478f14..c6d443516f 100644 --- a/macros/latex/contrib/easybook/easybook.dtx +++ b/macros/latex/contrib/easybook/easybook.dtx @@ -28,7 +28,7 @@ % % \title{\sffamily easybook 文档类手册} % \author{瞿毅} -% \date{2021/07/06\hskip\ccwd\relax v1.26u\thanks{\url{https://gitee.com/texl3/easybook}}} +% \date{2021/07/06\hskip\ccwd\relax v1.26x\thanks{\url{https://gitee.com/texl3/easybook}}} % % \maketitle % \begin{abstract} @@ -158,7 +158,7 @@ % floatpage = <true|(false)> % \end{syntax} % 开启这个选项后浮动环境 \env{table} 和 \env{figure} 的比例参数会使用默认值,关闭它则尽可能避免出现浮动页,使图表环境与正文段落更加紧凑,减少多余的空白版面。 -% \changes{v1.26u}{2021/06/15}{增加浮动环境比例参数选项 \opt{floatpage}。} +% \changes{v1.26x}{2021/06/15}{增加浮动环境比例参数选项 \opt{floatpage}。} % \end{function} % % \subsection{article 模式} @@ -166,7 +166,7 @@ % \begin{syntax} % class = <(book)|article> % \end{syntax} -% 设置文类风格,默认为 \cls{book} 文档类。选用 \opt{article} 会变为 \opt{oneside} 单面排版,同时使文档编号、结构等与标准 \cls{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \tn{chapter} 命令,此时设置双栏目录的 \opt{style/multoc} 选项、节 \ref{sec:document command} 中打印目录命令的 \opt{chapter} 选项会失效,将以 \opt{section} 标题级别输出目录。如果使用 \cls{ctexart} 配合 \pkg{easybase} 宏包,则 \opt{book} 宏包选项会失效。 +% 使用 \cls{easybook} 文档类可以有两种模式,默认为 \cls{book} 模式。选用 \opt{article} 会变为 \opt{oneside} 单面排版,同时使文档编号、结构等与标准 \cls{article} 文档类的特性相似,可用于短篇幅的文章,不需要再使用 \tn{chapter} 命令,此时节 \ref{sec:document command} 中目录命令的 \opt{chapter} 选项会失效,将以 \opt{section} 标题级别输出目录。也可以使用 \opt{book} 或 \opt{article} 选项指定文档类型。如果使用 \cls{ctexart} 配合 \pkg{easybase} 宏包,则 \opt{book} 宏包选项会失效。 % \changes{v1.23}{2021/03/16}{增加 article 文章模式,可用于短篇幅的文章。} % \end{function} % @@ -234,16 +234,16 @@ % 类似 \CTeX 的 \opt{name} 和 \opt{nmuber} 选项,它们用于设置主文区 \tn{bichapter} 等标题命令在英文目录中的前后名字与编号,目前只支持通常改变名字与编号的 chapter 级别。 % \end{function} % -% \begin{function}[added = 2021-05-05,updated = 2021-06-13]{\appendix,\EBeforeAddBitoc} +% \begin{function}[added = 2021-05-05,updated = 2021-06-13]{\appendix,\BeforeAddBitoc} % \begin{syntax} % \tn{appendix}[<英文附录目录前名字>,<英文附录目录后名字>]\parg{英文附录目录数字输出命令} -% \tn{EBeforeAddBitoc*}\marg{加入目录英文标题前的代码} +% \tn{BeforeAddBitoc*}\marg{加入目录英文标题前的代码} % \end{syntax} % \tn{appendix} 命令后的章节标题变为附录形式。英文目录中附录标题的格式用可选参数修改,英文附录目录前名字默认为 Appendix\tn{space},后名字默认为空,名字之间用一个半角逗号分开,也可以只有一部分,表示英文附录目录前名字。英文附录目录数字输出命令默认为 \tn{Alph}\{chapter\}。 -% \changes{v1.26u}{2021/06/13}{增加调整英文目录格式的钩子 \tn{EBeforeAddBitoc}。} +% \changes{v1.26x}{2021/06/13}{增加调整英文目录格式的钩子 \tn{BeforeAddBitoc}。} % \end{function} % -% \tn{EBeforeAddBitoc} 是一个作用于局部范围的英文目录钩子,可以插入标题或目录设置的命令改变英文目录中标题的显示格式,也可以覆盖上述的目录前后名字和编号等设置,带有星号的命令会重置之前的代码,放置在导言区或 \tn{bichapter} 等命令前生效。 +% \tn{BeforeAddBitoc} 是一个作用于局部范围的英文目录钩子,可以插入标题或目录设置的命令改变英文目录中标题的显示格式,也可以覆盖上述的目录前后名字和编号等设置,带有星号的命令会重置之前的代码,放置在导言区或 \tn{bichapter} 等命令前生效。 % % \subsection{上标和下标} % \begin{function}[added = 2021-06-26]{\super,\sub,\supersub,\textsuperscript,\textsubscript} @@ -255,7 +255,7 @@ % \ \oarg{水平偏移|(0pt)}\parg{下标代码} % \end{syntax} % 上标和下标的功能来自 \pkg{spbmark} 宏包,\tn{super}、\tn{sub} 和 \tn{supersub} 三个命令可以用于输出上标和下标。它们根据当前处于文本模式还是数学模式来匹配相应的模式,或者可以使用它们的星号变体命令来强制使用数学模式。也可以使用键值列表对偏移量进行全局设置,详情见小节 \ref{subsubsec:super-sub-script}。 -% \changes{v1.26u}{2021/06/28}{增加可以调整相对位置和格式的上标和下标命令 \tn{super}、\tn{sub} 和 \tn{supersub}。} +% \changes{v1.26x}{2021/06/28}{增加可以调整相对位置和格式的上标和下标命令 \tn{super}、\tn{sub} 和 \tn{supersub}。} % \end{function} % % 垂直和水平偏移默认值都是 0 pt,\meta{对齐方式} 的参数与 \opt{supersubalign} 相同。\meta{格式代码} 用于格式化上标和下标,可以插入字体或颜色等命令。代码中的最后一个命令可以接受一个为上标或下标的参数。上标和下标命令还分别具有更简短的等价命令 \tn{sp}、\tn{sb} 和 \tn{spb}。 @@ -306,7 +306,7 @@ % \tn{DeclareThemeColor}\{<风格名称>,<ctex@frame>,<ctex@emph>,<ctex@verb>\} % \end{syntax} % 可以使用 \tn{DeclareThemeColor} 命令声明新的主题颜色,它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 HTML 颜色代码,构成主题颜色。类似地更改超链接颜色见小节 \ref{subsec:hyperlinks}。 -% \changes{v1.26u}{2021/07/03}{使用 \tn{DeclareThemeColor} 命令声明新的颜色风格。} +% \changes{v1.26x}{2021/07/03}{使用 \tn{DeclareThemeColor} 命令声明新的颜色风格。} % \end{function} % \item[color-all] 统一设置主题的各部分颜色,参数是 6 个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 % \item[multoc] 开启多栏目录,与节 \ref{sec:document command} 中目录命令的同名选项有相同效果。 @@ -371,7 +371,7 @@ % \tn{DeclareLinkColor}\{<风格名称>,<ctex@link>,<ctex@url>,<ctex@cite>\} % \end{syntax} % 可以使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色样式,它的参数以英文逗号分隔,第一部分为颜色风格名称,后面三部分为 HTML 颜色代码,构成超链接颜色。 -% \changes{v1.26u}{2021/07/03}{使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色。} +% \changes{v1.26x}{2021/07/03}{使用 \tn{DeclareLinkColor} 命令声明新的超链接颜色。} % \end{function} % \item[linkcol-all] 统一设置超链接的各部分颜色,参数是 6 个十六进制数字组成的 HTML 颜色代码,任意颜色的代码可以在常见的图片处理工具拾色器中查看。 % \item[linktoc] 将目录中的超链接取消、置于标题上、置于页码上或置于标题和页码上。 @@ -452,7 +452,7 @@ % \item[datafile] 参考文献数据库的文件名,可以是单个文件也可以是以括号包裹并以英文逗号分隔的文件列表,使用 \hologo{biber} 处理时要带有 \opt{bib} 后缀,若不在当前文件夹名称需要包含路径。只有设置数据库的文件名才会载入 \pkg{natbib} 或 \pkg{biblatex} 宏包,之后才可使用相关配置命令,否则需要手动载入相关宏包配置参考文献。 % \end{optdesc} % -% \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\EBibtexSet,\EBiblatexPreset,\EBiblatexPostset} +% \begin{function}[added = 2021-01-11,updated = 2021-04-09]{\printbibliography,\BibtexPostset,\BiblatexPreset,\BiblatexPostset} % \begin{syntax} % \tn{printbibliography}\oarg{键值列表} % \end{syntax} @@ -468,9 +468,9 @@ % \end{syntax} % \opt{heading} 为参考文献标题的处理方式,\opt{bibliography} 选项以 \opt{chapter} 级别输出参考文献,不加进目录,\opt{subbibliography} 选项以 \opt{section} 级别输出参考文献,不加进目录,\opt{bibintoc} 选项以 \opt{chapter} 级别输出参考文献,加进目录,\opt{subbibintoc} 选项以 \opt{section} 级别输出参考文献,加进目录。\opt{title} 选项覆盖由 \opt{heading} 选项提供的缺省标题名。除此之外其他支持选项可见 \pkg{biblatex} 宏包说明文档。 % \end{function} -% \item[\tn{EBibtexSet}] 这是 \pkg{natbib} 宏包的配置命令,需要与 \pkg{natbib} 配合并放在载入其之后使用,默认保存了参考文献风格和标题的设置。 -% \item[\tn{EBiblatexPreset}] 这是 \pkg{biblatex} 宏包的前配置命令,需要与 \pkg{biblatex} 配合并放在载入其之前使用,默认保存了参考文献风格的设置。若重新定义可使用 \tn{PassOptionsToPackage} 命令向 \pkg{biblatex} 传递它支持的各种参考文献选项。 -% \item[\tn{EBiblatexPostset}] 这是 \pkg{biblatex} 宏包的后配置命令,需要与 \pkg{biblatex} 配合并放在载入其之后使用,默认保存了参考文献标题的设置。 +% \item[\tn{BibtexPostset}] 这是 \pkg{natbib} 宏包的配置命令,需要与 \pkg{natbib} 配合并放在载入其之后使用,默认保存了参考文献风格和标题的设置。 +% \item[\tn{BiblatexPreset}] 这是 \pkg{biblatex} 宏包的前配置命令,需要与 \pkg{biblatex} 配合并放在载入其之前使用,默认保存了参考文献风格的设置。若重新定义可使用 \tn{PassOptionsToPackage} 命令向 \pkg{biblatex} 传递它支持的各种参考文献选项。 +% \item[\tn{BiblatexPostset}] 这是 \pkg{biblatex} 宏包的后配置命令,需要与 \pkg{biblatex} 配合并放在载入其之后使用,默认保存了参考文献标题的设置。 % \end{optdesc} % % \subsection{定理样式} @@ -492,7 +492,7 @@ % \end{syntax} % \ding{229} 以上选项路径为 \opt{thmset/...} % \changes{v1.21}{2021/01/12}{增加配置定理环境样式的选项。} -% \changes{v1.26u}{2021/07/01}{增加配置公式标签括号选项 \opt{brackets}。} +% \changes{v1.26x}{2021/07/01}{增加配置公式标签括号选项 \opt{brackets}。} % \end{function} % % \begin{optdesc} @@ -510,16 +510,16 @@ % \item[brackets] 设置行间公式编号标签的括号,以英文逗号分隔,分别为左右括号。 % \end{optdesc} % -% \begin{function}[added = 2021-01-12,updated = 2021-06-15]{\declaretheorem,\EBNewTheorem,\declaretheoremstyle} +% \begin{function}[added = 2021-01-12,updated = 2021-06-15]{\declaretheorem,\DeclareTheorem,\declaretheoremstyle} % \begin{syntax} % \tn{declaretheorem}\oarg{键值列表}\marg{定理环境名} -% \tn{EBNewTheorem}\marg{定理环境名}\oarg{英文标题}\marg{中文标题}\parg{盒子样式|(tc-theorem)}\oarg{键值列表} +% \tn{DeclareTheorem}\marg{定理环境名}\oarg{英文标题}\marg{中文标题}\parg{盒子样式|(tc-theorem)}\oarg{键值列表} % \tn{declaretheoremstyle}\oarg{键值列表}\marg{定理样式名} % \end{syntax} % 文档类已预置 8 个定理环境,环境名及对应的定理标题名见小节 \ref{subsec:theorem},如果需要新的定理标题名或定理样式可使用这两个命令,由 \pkg{thmtools} 提供支持,用法与它的同名命令一致。 % \changes{v1.23}{2021/03/12}{重新定义了新定理环境命令 \tn{newtheorem}。} -% \changes{v1.24}{2021/04/25}{增加定义定理环境命令 \tn{EBNewTheorem}。} -% \changes{v1.26u}{2021/06/15}{定义新定理环境的命令调整为 \tn{declaretheorem}。} +% \changes{v1.24}{2021/04/25}{增加定义定理环境命令 \tn{DeclareTheorem}。} +% \changes{v1.26x}{2021/06/15}{定义新定理环境的命令调整为 \tn{declaretheorem}。} % \end{function} % % \begin{optdesc} @@ -530,7 +530,7 @@ % \item[numberlike] 定理将使用此计数器进行编号,通常这是另一个定理环境的名称。 % \item[style] 用 \tn{declaretheoremstyle} 定义的定理样式的名称,定理将使用这种样式的设置。 % \end{description} -% \item[\tn{EBNewTheorem}] \tn{EBNewTheorem} 是更便捷的定理命令,它定义一个新的定理环境,\meta{键值列表} 支持的选项与 \tn{declaretheorem} 相同,但它们的区别有: +% \item[\tn{DeclareTheorem}] \tn{DeclareTheorem} 是更便捷的定理命令,它定义一个新的定理环境,\meta{键值列表} 支持的选项与 \tn{declaretheorem} 相同,但它们的区别有: % \begin{itemize} % \item 中英文模式下标题不同,英文标题为可选项,默认为首字母大写的环境名。 % \item 自动定义交叉引用的格式,引用标签前缀为定理名称。 @@ -543,7 +543,7 @@ % \subsubsection{新的定理样式} % 预置定理的样式为 \opt{easy-theorem},上述定理样式选项将对这个定理样式生效。如果使用这个样式而只是增加新的定理名称,可以这样: % \begin{ctexexam} -% \EBNewTheorem{定理环境名}{中文标题}[style = other theorem] +% \DeclareTheorem{定理环境名}{中文标题}[style = other theorem] % \declaretheorem[style = easy-theorem,name = 定理名]{定理环境名} % \end{ctexexam} % \tn{declaretheorem} 定义的定理环境需要手动增加盒子边框,可以如下进行设置: @@ -625,7 +625,7 @@ % \tn{markrule}\oarg{长度|(\tn{textwidth})}\parg{颜色名}\marg{线宽|(0.75pt)}[<上间距>+<下间距>] % \end{syntax} % 命令 \tn{easyhead} 和 \tn{easyfoot} 的使用方法与 \tn{fancyhead} 和 \tn{fancyfoot} 完全相同,它们需要在 \opt{head-foot} 选项中使用,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中E、O代表偶数、奇数,L、C、R代表左、中、右部分。单面打印时,含有偶数的选项无效。 -% \changes{v1.26u}{2021/06/14}{增加页眉页脚的横线绘制命令 \tn{markrule}。} +% \changes{v1.26x}{2021/06/14}{增加页眉页脚的横线绘制命令 \tn{markrule}。} % \end{function} % % 命令 \tn{markrule} 用于绘制页眉页脚横线,长度默认为页面文本区的宽度,上下间距为横线与上下方部件的间距,带有长度单位,间距长度之间用 + 号分开,若只有一部分则表示上间距,这个命令也可以在正文中绘制横线。下面举一个设置页眉内容的例子: @@ -680,15 +680,15 @@ % % \opt{format} 是目录中标题的格式,可以设置字体和加入垂直间距等,垂直间距最好使用无间距重合的 \tn{addvspace} 命令,带有加号的 \opt{format+} 选项用于在已有的格式命令后附加内容。\opt{indent} 是目录中标题在页面左侧的缩进距离,应该有长度单位。\opt{rule} 选项中一般应当使用 \tn{tocrule} 命令,将会在接下来介绍。\opt{numsep} 是有编号的标题在目录中编号与标题的间距。 % -% \begin{function}[added = 2021-01-13,updated = 2021-06-11]{\tocrule,\EBNumberLine} +% \begin{function}[added = 2021-01-13,updated = 2021-06-11]{\tocrule,\CTEXnumberline} % \begin{syntax} % \tn{tocrule}*\oarg{引导点间距|(0.7pc)}\parg{引导点大小|(1.2)}\marg{引导点}\oarg{页码格式} -% \tn{EBNumberLine}\marg{编号类型} +% \tn{CTEXnumberline}\marg{编号级别} % \end{syntax} % \tn{tocrule} 命令生成目录引导线,需要在 \opt{rule} 选项中使用。带有星号的命令会使当前级别的目录引导线右边与页码连接而不是对齐。引导点间距需带有长度单位,引导点大小不带单位,为引导点符号正常大小的倍数,引导点一般为英文句号或 \tn{cdot} 中心点符号。页码格式的内容位于页码前面,可以设置页码字体和距离等,最后一个格式命令可以带有一个参数,这个参数接受页码编号。 % \end{function} % -% \tn{EBNumberLine} 命令类似 \CTeX 的 \tn{CTEXnumberline} 命令,用于 \opt{tocline} 选项中设置目录标签的编号。区别是它需要在 \opt{tocset/hang = false} 时使用,否则目录中无法显示标题编号,使用它的时候 \opt{numsep} 选项仍然有效。\meta{编号类型} 为 \opt{chapter} 和 \opt{section} 等,也可用参数 \#1 代替当前级别类型,标题名用参数 \#2 代替一般不变。 +% \tn{CTEXnumberline} 命令用于在 \CTeX 文档类的 \opt{tocline} 选项中设置目录标签的编号,它已经被重新定义,使得目录编号后间距选项 \opt{numsep} 仍然有效。\meta{编号级别} 为 \opt{chapter} 和 \opt{section} 等,也可用参数 \#1 代替当前级别类型,标题名用参数 \#2 代替一般不变。 % % \begin{ctexexam} % \tocset @@ -858,7 +858,7 @@ % \end{function} % % \begin{ctexexam} -% \tcphanifname{\markright{\EBUseCounter{tcbcounter}{\quad 习题}}}{} +% \tcphanifname{\markright{\UseCounter{tcbcounter}{\quad 习题}}}{} % \exerprologue{习题前的一段文本} % \begin{exercise}+[color = LightSkyBlue](after skip = 3.75ex)[itemsep = 1ex] % \item 习题内容 @@ -957,22 +957,22 @@ % \end{ctexexam} % % \subsection{计数器} -% \begin{function}[added = 2021-06-30]{\newcounter,\EBUseCounter} +% \begin{function}[added = 2021-06-30]{\newcounter,\UseCounter} % \begin{syntax} % \tn{newcounter}\marg{计数器}\oarg{父计数器} -% \tn{EBUseCounter*}\oarg{父计数器}\parg{编号|(arabic)}\marg{计数器}\marg{内容}\oarg{分隔符|(.)}\parg{数值} +% \tn{UseCounter*}\oarg{父计数器}\parg{编号|(arabic)}\marg{计数器}\marg{内容}\oarg{分隔符|(.)}\parg{数值} % \end{syntax} -% \tn{newcounter} 是 \LaTeX 自带的创建计数器命令,\tn{EBUseCounter} 将会以一定的格式使用由它创建的计数器,将会以 \tn{the}\meta{父计数器}\meta{分隔符}\tn{the}\meta{计数器}\meta{内容} 输出当前内容。 -% \changes{v1.26u}{2021/06/30}{增加计数器使用命令 \tn{EBUseCounter}。} +% \tn{newcounter} 是 \LaTeX 自带的创建计数器命令,\tn{UseCounter} 将会以一定的格式使用由它创建的计数器,将会以 \tn{the}\meta{父计数器}\meta{分隔符}\tn{the}\meta{计数器}\meta{内容} 输出当前内容。 +% \changes{v1.26x}{2021/06/30}{增加计数器使用命令 \tn{UseCounter}。} % \end{function} % -% 需要注意的是 \tn{EBUseCounter} 仅具有 \textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加 1,带有星号的命令使 \meta{计数器} 保持当前值,\meta{编号} 为 arabic 和 alpha 等格式,\meta{数值} 可以手动将 \meta{计数器} 设为指定值。 +% 需要注意的是 \tn{UseCounter} 仅具有 \textbf{输出功能},并不会改变计数器原有的绑定关系。默认每使用一次命令 \meta{计数器} 的值增加 1,带有星号的命令使 \meta{计数器} 保持当前值,\meta{编号} 为 arabic 和 alpha 等格式,\meta{数值} 可以手动将 \meta{计数器} 设为指定值。 % -% 在一定的场合下可能用到 \tn{EBUseCounter} 命令,比如通过新建快捷命令在一些位置使用定理环境的计数器,使用 \tn{labelformat} 设置计数器的引用标签需添加 eb@: +% 在一定的场合下可能用到 \tn{UseCounter} 命令,比如通过新建快捷命令在一些位置使用定理环境的计数器,使用 \tn{labelformat} 设置计数器的引用标签需添加 eb@: % \begin{ctexexam} % \labelformat{eb@theorem}{定理 #1} % \newcommand{\theoremhead}[1] -% {定理 \EBUseCounter[chapter]{theorem}{\hspace{\ccwd}#1}} +% {定理 \UseCounter[chapter]{theorem}{\hspace{\ccwd}#1}} % \theoremhead{定理标题}\label{thm:theorem} % \end{ctexexam} % @@ -1150,8 +1150,8 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/07/06}{1.26u} - {Typeset Chinese books or notes} +\ProvidesExplClass{easybook}{2021/07/06}{1.26x} + {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool \bool_set_false:N \l__eb_title_newline_bool @@ -1165,7 +1165,6 @@ \keys_define:nn { easybook } { - draft .code:n = \bool_set_true:N \l__eb_compile_draft_bool, newline .code:n = \bool_set_true:N \l__eb_title_newline_bool, scheme .code:n = \eb_put_ctexbook:n { scheme = #1 }, enmode .meta:n = { newline,scheme = plain }, @@ -1208,11 +1207,13 @@ \bool_set_false:N \l__eb_class_book_bool \keys_set:nn { easybook } { oneside } }, + book .meta:n = { class = book }, + article .meta:n = { class = article }, - config .tl_set:N = \g__eb_config_tl, - floatpage .bool_set:N = \l__eb_float_page_bool, - floatpage .default:n = true, - unknown .code:n = + config .tl_set:N = \g__eb_config_tl, + floatpage .bool_set:N = \l__eb_float_page_bool, + floatpage .default:n = true, + unknown .code:n = { \clist_gput_right:NV \g__eb_options_clist \CurrentOption } } @@ -1331,7 +1332,6 @@ part = { pagestyle = empty, - tocline = \EBNumberLine{#1}#2, format = \color{ctex@frame}\sffamily\Huge, aftername = { @@ -1397,8 +1397,8 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{etoolbox} -\ProvidesExplPackage{easybase}{2021/07/06}{1.26u} - {Typeset Chinese books or notes} +\ProvidesExplPackage{easybase}{2021/07/06}{1.26x} + {Typeset Chinese theses or books} \cs_generate_variant:Nn \eb_ctex_define:nn { nx } \cs_generate_variant:Nn \int_to_arabic:n { v } @@ -1446,28 +1446,28 @@ \eb_clist_map_inline:nn {#1} { \AtBeginEnvironment{##1}{#2} } } -\cs_new_protected:Npn \eb_match_package_name:n #1 +\cs_new_protected:Npn \eb_match_load_package:n #1 { \tl_if_in:nnTF {#1} { [ } { - \regex_split:nnNT { \[ } {#1} \l_tmpa_seq - { \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl } - \@ifpackageloaded{\l_tmpa_tl}{} + \seq_set_split:Nnn \l_tmpa_seq { [ } {#1} + \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl + \IfFileExists{\l_tmpa_tl.sty} { \exp_last_unbraced:Nx \RequirePackage { [\seq_use:Nn \l_tmpa_seq { , } }{\l_tmpa_tl} - } + }{} } - { \@ifpackageloaded{#1}{}{\RequirePackage{#1}} } + { \IfFileExists{#1.sty}{\RequirePackage{#1}}{} } } -\NewDocumentCommand{\eb@package@load}{O{}m} +\NewDocumentCommand{\LoadPackage}{O{}m} { - \seq_set_split:Nnn \l__eb_package_name_seq { + } {#2} + \seq_set_split:Nnn \l__eb_package_names_seq { + } {#2} \int_compare:oNnT - { \seq_count:N \l__eb_package_name_seq } = { 1 } + { \seq_count:N \l__eb_package_names_seq } = { 1 } { \PassOptionsToPackage{#1}{#2} } \seq_map_function:NN - \l__eb_package_name_seq \eb_match_package_name:n + \l__eb_package_names_seq \eb_match_load_package:n } \cs_new_protected:Npn \eb_at_end_preamble:n { \BeforeBeginEnvironment{document} } @@ -1482,11 +1482,10 @@ \keys_define:nn { easybase } { - draft .code:n = - { \bool_set_true:N \l__eb_compile_draft_bool }, - floatpage .bool_set:N = \l__eb_float_page_bool, - floatpage .default:n = true, - floatpage .initial:n = false, + draft .code:n = \bool_set_true:N \l__eb_compile_draft_bool, + floatpage .bool_set:N = \l__eb_float_page_bool, + floatpage .default:n = true, + floatpage .initial:n = false, paper .choice:, paper .value_required:n = true, @@ -1501,7 +1500,9 @@ \bool_set_false:N \l__eb_class_book_bool \bool_set_false:N \l__eb_page_twoside_bool }, - class .initial:n = book + class .initial:n = book, + book .meta:n = { class = #1 }, + article .meta:n = { class = #1 } } \clist_map_inline:nn @@ -1571,32 +1572,10 @@ uppercase .bool_set:N = \l__eb_mark_uppercase_bool, uppercase .default:n = true, uppercase .initial:n = true, - figurepath .tl_set:N = \l_eb_graphics_path_tl, - - footwith .choices:nn = - { part,page,chapter } - { - \tl_set_eq:NN - \l__eb_foot_counter_parent_choice_tl \l_keys_choice_tl - }, - footwith .value_required:n = true, - footwith .initial:n = chapter, - - figure-con .tl_set:N = \l__eb_figure_connector_tl, - table-con .tl_set:N = \l__eb_table_connector_tl, - listing-con .tl_set:N = \l__eb_lstlisting_connector_tl, - equation-con .tl_set:N = \l__eb_equation_connector_tl, - number-con .meta:n = - { - figure-con = #1, - table-con = #1, - listing-con = #1, - equation-con = #1 - }, - number-con .initial:n = { . } + figurepath .tl_set:N = \l_eb_graphics_path_tl } -\eb@package@load +\LoadPackage { footmisc[stable,bottom]+ spbmark[ctex]+ @@ -1611,9 +1590,9 @@ setspace+ listings } -\cs_new_protected:Npn \eb_package_later_bool:nn #1#2 +\cs_new_protected:Npn \eb_package_date_check:nn #1#2 { - \@ifpackagelater{#1}{#2} + \IfPackageAtLeastTF{#1}{#2} {}{\msg_warning:nnn { easybase } { package-old } {#1}} } \msg_new:nnn { easybase } { package-old } @@ -1631,9 +1610,10 @@ { thmtools } { 2020/08/01 }, { caption } { 2020/08/24 }, { fancyhdr } { 2021/01/28 }, - { siunitx } { 2021/06/22 } + { siunitx } { 2021/06/22 }, + { tabularray } { 2021/07/01 } } - { \eb_package_later_bool:nn #1 } + { \eb_package_date_check:nn #1 } \includepdfset{fitpaper = true} \geometry @@ -1806,7 +1786,7 @@ { \bool_if:NTF \l__eb_mark_uppercase_bool { \eb_mark_uppercase:n } - { \eb_mark_nouppercase:n }{\use:c { eb_fancyhf_#1_mark:n } {#2}} + { \eb_mark_nouppercase:n } { \use:c { eb_fancyhf_#1_mark:n } {#2} } } \cs_new:Npn \eb@level@markdouble #1#2 { @@ -1850,6 +1830,17 @@ \cs_if_exist:NF \kaishu { \cs_gset_eq:NN \kaishu \itshape } } +\eb_ctex_define:nn { style } + { + footwith .choices:nn = + { part,page,chapter } + { + \tl_set_eq:NN + \l__eb_foot_counter_parent_choice_tl \l_keys_choice_tl + }, + footwith .value_required:n = true, + footwith .initial:n = chapter + } \eb_at_end_preamble:n { \group_begin: @@ -1876,6 +1867,8 @@ \selectfont\ignorespaces \l__eb_subfont_footnote_tl } +\providecommand{\super}{\textsuperscript} +\providecommand{\spb@textsuperscript@save}{\textsuperscript} \ctex_after_end_preamble:n { \ExplSyntaxOn\char_set_catcode_letter:N \@ @@ -1965,14 +1958,19 @@ } } -\cs_new:Npn \EBNumberLine #1 +\cs_set:Npn \CTEXnumberline #1 { \CTEXifname { - \use:c { CTEXthe#1 } - \hspace{\use:c { eb@toc@#1@numsep }} + \ifbool{eb@titletoc@hang@fix} + { \protect\numberline{\use:c { CTEXthe#1 }} } + { + \use:c { CTEXthe#1 } + \hspace{\use:c { eb@toc@#1@numsep }} + } }{} } +\cs_set_eq:NN \EBNumberLine \CTEXnumberline \newbool{eb@titletoc@hang@fix} \eb_ctex_define:nn { tocset } { @@ -2008,25 +2006,8 @@ }, hang .choice:, - hang/true .code:n = - { - \booltrue{eb@titletoc@hang@fix} - \ctex_set:n - { - chapter/tocline = \CTEXnumberline{##1}##2, - section/tocline = \CTEXnumberline{##1}##2, - subsection/tocline = \CTEXnumberline{##1}##2 - } - }, - hang/false .code:n = - { - \ctex_set:n - { - chapter/tocline = \EBNumberLine{##1}##2, - section/tocline = \EBNumberLine{##1}##2, - subsection/tocline = \EBNumberLine{##1}##2 - } - }, + hang/true .code:n = \booltrue{eb@titletoc@hang@fix}, + hang/false .code:n = { }, hang .default:n = true, hang .initial:n = false, @@ -2056,6 +2037,13 @@ list/rule = #1 } } +\ctex_set:n + { + part/tocline = \CTEXnumberline{#1}#2, + chapter/tocline = \CTEXnumberline{#1}#2, + section/tocline = \CTEXnumberline{#1}#2, + subsection/tocline = \CTEXnumberline{#1}#2 + } \NewDocumentCommand{\tocrule}{sO{0.7pc}D(){1.2}mO{}} { @@ -2136,7 +2124,7 @@ \tl_use:c { the#1 } } } -\NewDocumentCommand{\EBUseCounter}{soD(){arabic}mmO{.}d()} +\NewDocumentCommand{\UseCounter}{soD(){arabic}mmO{.}d()} { \IfBooleanF{#1}{\stepcounter{#4}} \IfValueT{#7}{\setcounter{#4}{#7}} @@ -2159,22 +2147,10 @@ \cs_set:Npn \thebisection { \eb_section_counter_prefix:n { bi } } \cs_set:Npn \thebisubsection { \thebisection.\eb_arabic:n { bisubsection } } \cs_set:Npn \thesection { \eb_section_counter_prefix:n { } } -\eb_clist_map_inline:nn - { figure,table,lstlisting,equation } - { - \cs_set:cpn { the#1 } - { - \int_compare:nNnT { \c@chapter } > { 0 } - { - \thechapter - \tl_use:c { l__eb_#1_connector_tl } - } - \eb_arabic:n {#1} - } - } + \contentsuse{}{tec} \tl_new:N \eb@before@addbitoc@hook -\NewDocumentCommand{\EBeforeAddBitoc}{sm} +\NewDocumentCommand{\BeforeAddBitoc}{sm} { \IfBooleanTF{#1} {\tl_gset:Nn \eb@before@addbitoc@hook {#2}} @@ -2226,6 +2202,35 @@ } } +\eb_ctex_define:nn { style } + { + figure-con .tl_set:N = \l__eb_figure_connector_tl, + table-con .tl_set:N = \l__eb_table_connector_tl, + listing-con .tl_set:N = \l__eb_lstlisting_connector_tl, + equation-con .tl_set:N = \l__eb_equation_connector_tl, + number-con .meta:n = + { + figure-con = #1, + table-con = #1, + listing-con = #1, + equation-con = #1 + }, + number-con .initial:n = { . } + } +\eb_clist_map_inline:nn + { figure,table,lstlisting,equation } + { + \cs_set:cpn { the#1 } + { + \int_compare:nNnT { \c@chapter } > { 0 } + { + \thechapter + \tl_use:c { l__eb_#1_connector_tl } + } + \eb_arabic:n {#1} + } + } + \tl_set:Nx \l__eb_toc_type_tl { \bool_if:NTF \l__eb_class_book_bool { chapter } { section } } \tl_new:N \eb@bitoc@title @@ -2477,7 +2482,7 @@ { scholax } { \eb_put_newtxmath:n { nc,noOT1 } } { charter } { \eb_put_newtxmath:n { charter,noOT1 } } } - { \eb@package@load{newtxmath+bm} } + { \LoadPackage{newtxmath+bm} } } \fp_new:N \l__eb_spread_line_fp @@ -2538,14 +2543,17 @@ \captionsetup[figure][bi-second]{name = Figure} \captionsetup[table][bi-second]{name = Table} } -\SetTblrDefault +\IfPackageAtLeastTF{tabularray}{2021/07/01} { - rows = {abovesep = 4pt,belowsep = 2pt}, - stretch = \fp_use:N \l__eb_spread_table_fp - } -\NewTableCommand{\toprule}[1][1pt]{\hline[#1]} -\NewTableCommand{\midrule}[1][0.5pt]{\hline[#1]} -\NewTableCommand{\bottomrule}[1][1pt]{\hline[#1]} + \SetTblrInner + { + rows = {abovesep = 4pt,belowsep = 2pt}, + stretch = \fp_use:N \l__eb_spread_table_fp + } + \NewTableCommand{\toprule}[1][1pt]{\hline[#1]} + \NewTableCommand{\midrule}[1][0.5pt]{\hline[#1]} + \NewTableCommand{\bottomrule}[1][1pt]{\hline[#1]} + }{} \eb_at_begin_environment:nn { tabular,tabularx } { \exp_args:Nx \linespread { \fp_use:N \l__eb_spread_table_fp } @@ -2624,7 +2632,7 @@ { \tl_const:cn { c__eb_name_#1_tl } {#3} } { \tl_const:cn { c__eb_name_#1_tl } {#2} } } -\NewDocumentCommand{\EBNewTheorem} +\NewDocumentCommand{\DeclareTheorem} {mO{\text_titlecase_first:n {#1}}mD(){tc-theorem}O{}} { \ctex_at_end_preamble:n @@ -2643,6 +2651,7 @@ \labelformat{#1}{\tl_use:c { c__eb_name_#1_tl }~##1} } } +\cs_set_eq:NN \EBNewTheorem \DeclareTheorem \cs_set_eq:NN \eb@declare@theorem@save \declaretheorem \RenewDocumentCommand{\declaretheorem}{O{}m} {\AfterPreamble{\eb@declare@theorem@save[#1]{#2}}} @@ -2719,7 +2728,7 @@ { remark } { 注 } [ numbered = no ], { { proof } { 证明 } [ numbered = no,qed = \qedsymbol ] } } - { \EBNewTheorem #1 } + { \DeclareTheorem #1 } } \setchemformula @@ -2728,19 +2737,22 @@ charge-hshift = 0.25\ccwd, subscript-vshift = -0.2ex } -\sisetup +\IfPackageAtLeastTF{siunitx}{2021/06/22} { - mode = match, - table-parse-only, - text-family-to-math, - text-series-to-math, - reset-text-family = false, - reset-text-series = false, - reset-text-shape = false, - range-phrase = \ensuremath{\sim}, - range-units = single, - group-digits = none - } + \sisetup + { + mode = match, + table-parse-only, + text-family-to-math, + text-series-to-math, + reset-text-family = false, + reset-text-series = false, + reset-text-shape = false, + range-phrase = \ensuremath{\sim}, + range-units = single, + group-digits = none + } + }{} \eb_at_begin_environment:nn { array,matrix,pmatrix,bmatrix,Bmatrix,vmatrix,Vmatrix, @@ -2790,7 +2802,7 @@ { \keys_set:nn { eb/exercise } {#1} } \ctex_at_end_package:nn { tcolorbox } { - \eb_package_later_bool:nn { tcolorbox } { 2020/10/09 } + \eb_package_date_check:nn { tcolorbox } { 2020/10/09 } \file_if_exist_input:n { eb-tcolorbox.cfg } } @@ -2831,7 +2843,7 @@ bitoc-title .initial:n = Reference } -\cs_new_protected:Npn \EBibtexSet +\cs_new_protected:Npn \BibtexPostset { \tl_if_empty:NTF \l__eb_bib_otherstyle_tl { @@ -2867,7 +2879,7 @@ } \cs_new_protected:Npn \eb_put_biblatex:n #1 { \PassOptionsToPackage{#1}{biblatex} } -\cs_new_protected:Npn \EBiblatexPreset +\cs_new_protected:Npn \BiblatexPreset { \tl_if_empty:NTF \l__eb_bib_otherstyle_tl { @@ -2881,7 +2893,7 @@ { \eb_put_biblatex:n { citestyle = \l__eb_bib_citestyle_tl } } \eb_put_biblatex:n { backend = biber } } -\cs_new_protected:Npn \EBiblatexPostset +\cs_new_protected:Npn \BiblatexPostset { \clist_map_function:NN \l__eb_bib_datafile_clist \addbibresource \tl_gset:Nn \blx@default@theheading { bibintoc } @@ -2895,13 +2907,13 @@ { \bool_if:NTF \l__eb_backend_bibtex_bool { - \eb@package@load[sort&compress]{natbib} - \EBibtexSet + \LoadPackage[sort&compress]{natbib} + \BibtexPostset } { - \EBiblatexPreset - \eb@package@load{biblatex} - \EBiblatexPostset + \BiblatexPreset + \LoadPackage{biblatex} + \BiblatexPostset } } } @@ -3091,7 +3103,7 @@ } \ctex_at_end_preamble:n { - \eb@package@load{hyperref} + \LoadPackage{hyperref} \urlstyle{same} \eb_allow_urlbreak: \ctex_hypersetup:n { pdfstartview = FitH } @@ -3132,7 +3144,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/06}{1.26u} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/06}{1.26x} {Customization of tcolorbox for easybook} \cs_new_protected:Npn \eb_tcb_theorem_set:n #1 @@ -3165,8 +3177,9 @@ { blank,on~line,center, sharpish~corners, - fontupper = \Large\sffamily, - before~skip = 3.75ex,after~skip = 3ex + fontupper = \Large\sffamily, + before~skip = 3.75ex, + after~skip = 3ex\tl_if_empty:NF \eb@tc@list@prologue { + 0.75ex } } \tcbset { diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf Binary files differindex 8dcf4520b0..69091e6cb5 100644 --- a/macros/latex/contrib/easybook/easybook.pdf +++ b/macros/latex/contrib/easybook/easybook.pdf |