From f008fc632f906448b4bdbc5cd96ab7d98e68b0b9 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Thu, 8 Jul 2021 03:00:51 +0000 Subject: CTAN sync 202107080300 --- .../beamer-contrib/themes/thubeamer/License | 415 ++++ .../beamer-contrib/themes/thubeamer/Makefile | 18 + .../beamer-contrib/themes/thubeamer/README.md | 133 ++ .../themes/thubeamer/figures/thulogo.pdf | Bin 0 -> 111420 bytes .../beamer-contrib/themes/thubeamer/macros.tex | 138 ++ .../beamer-contrib/themes/thubeamer/makebeamer.bat | 5 + .../beamer-contrib/themes/thubeamer/makeclean.bat | 20 + .../themes/thubeamer/makecleanall.bat | 22 + .../beamer-contrib/themes/thubeamer/makedoc.bat | 5 + .../beamer-contrib/themes/thubeamer/reference.bib | 140 ++ .../themes/thubeamer/thubeamer-example.pdf | Bin 0 -> 406590 bytes .../themes/thubeamer/thubeamer-example.tex | 250 +++ .../beamer-contrib/themes/thubeamer/thubeamer.bst | 1978 ++++++++++++++++++++ .../beamer-contrib/themes/thubeamer/thubeamer.dtx | 722 +++++++ .../beamer-contrib/themes/thubeamer/thubeamer.pdf | Bin 0 -> 199474 bytes macros/latex/contrib/changes/changes.drv | 2 +- macros/latex/contrib/changes/changes.dtx | 140 +- macros/latex/contrib/changes/changes.english.pdf | Bin 369142 -> 370498 bytes .../contrib/changes/changes.english.withcode.pdf | Bin 454516 -> 458130 bytes macros/latex/contrib/changes/changes.ins | 16 +- macros/latex/contrib/changes/changes.ngerman.pdf | Bin 376580 -> 378112 bytes macros/latex/contrib/changes/examples.dtx | 154 +- .../examples/changes.example.addedmarkup.bf.pdf | Bin 85486 -> 97326 bytes .../changes.example.addedmarkup.colored.pdf | Bin 82295 -> 94008 bytes .../changes.example.addedmarkup.dashuline.pdf | Bin 82935 -> 94795 bytes .../changes.example.addedmarkup.dotuline.pdf | Bin 82553 -> 94649 bytes .../examples/changes.example.addedmarkup.em.pdf | Bin 83749 -> 95281 bytes .../examples/changes.example.addedmarkup.it.pdf | Bin 83749 -> 95656 bytes .../examples/changes.example.addedmarkup.sl.pdf | Bin 84735 -> 96366 bytes .../examples/changes.example.addedmarkup.uline.pdf | Bin 82746 -> 94615 bytes .../changes.example.addedmarkup.uuline.pdf | Bin 85371 -> 97239 bytes .../examples/changes.example.addedmarkup.uwave.pdf | Bin 84759 -> 96596 bytes .../examples/changes.example.addedmarkup.wrong.pdf | Bin 82295 -> 94098 bytes .../changes.example.authormarkup.brackets.pdf | Bin 74370 -> 86116 bytes .../changes.example.authormarkup.footnote.pdf | Bin 99663 -> 111392 bytes .../examples/changes.example.authormarkup.none.pdf | Bin 73913 -> 85486 bytes .../changes.example.authormarkup.subscript.pdf | Bin 82294 -> 94273 bytes .../changes.example.authormarkup.superscript.pdf | Bin 82295 -> 94104 bytes .../changes.example.authormarkup.wrong.pdf | Bin 82295 -> 94057 bytes .../changes.example.authormarkupposition.left.pdf | Bin 82295 -> 94349 bytes .../changes.example.authormarkupposition.right.pdf | Bin 82295 -> 94104 bytes .../changes.example.authormarkupposition.wrong.pdf | Bin 82295 -> 94303 bytes .../changes.example.authormarkuptext.id.pdf | Bin 82295 -> 94464 bytes .../changes.example.authormarkuptext.name.pdf | Bin 83846 -> 97319 bytes .../changes.example.authormarkuptext.wrong.pdf | Bin 82295 -> 94235 bytes .../changes.example.commandnameprefix.always.pdf | Bin 82295 -> 94948 bytes .../changes.example.commandnameprefix.ifneeded.pdf | Bin 82295 -> 94489 bytes .../changes.example.commandnameprefix.none.pdf | Bin 82295 -> 94482 bytes .../changes.example.commandnameprefix.wrong.pdf | Bin 82295 -> 94673 bytes .../changes.example.commentmarkup.footnote.pdf | Bin 110514 -> 122220 bytes .../changes.example.commentmarkup.margin.pdf | Bin 78953 -> 90782 bytes .../changes.example.commentmarkup.todo.pdf | Bin 82295 -> 94049 bytes .../changes.example.commentmarkup.uwave.pdf | Bin 81965 -> 94148 bytes .../changes.example.commentmarkup.wrong.pdf | Bin 0 -> 94057 bytes .../examples/changes.example.defaultcolor.pdf | Bin 82299 -> 94285 bytes .../examples/changes.example.deletedmarkup.bf.pdf | Bin 84982 -> 97064 bytes .../changes.example.deletedmarkup.colored.pdf | Bin 81125 -> 92984 bytes .../changes.example.deletedmarkup.dashuline.pdf | Bin 82590 -> 94572 bytes .../changes.example.deletedmarkup.dotuline.pdf | Bin 81687 -> 93750 bytes .../examples/changes.example.deletedmarkup.em.pdf | Bin 82891 -> 94641 bytes .../examples/changes.example.deletedmarkup.it.pdf | Bin 82891 -> 94875 bytes .../examples/changes.example.deletedmarkup.sl.pdf | Bin 85110 -> 96849 bytes .../changes.example.deletedmarkup.sout.pdf | Bin 82295 -> 94147 bytes .../changes.example.deletedmarkup.uline.pdf | Bin 82291 -> 94280 bytes .../changes.example.deletedmarkup.uuline.pdf | Bin 88402 -> 100430 bytes .../changes.example.deletedmarkup.uwave.pdf | Bin 83877 -> 95933 bytes .../changes.example.deletedmarkup.wrong.pdf | Bin 82295 -> 94339 bytes .../changes.example.deletedmarkup.xout.pdf | Bin 81521 -> 93544 bytes .../changes/examples/changes.example.draft.pdf | Bin 82295 -> 93748 bytes .../changes/examples/changes.example.final.pdf | Bin 68141 -> 79469 bytes .../changes.example.highlightmarkup.background.pdf | Bin 82295 -> 94570 bytes .../changes.example.highlightmarkup.uuline.pdf | Bin 82970 -> 94774 bytes .../changes.example.highlightmarkup.uwave.pdf | Bin 84357 -> 96494 bytes .../changes.example.highlightmarkup.wrong.pdf | Bin 0 -> 94396 bytes .../examples/changes.example.language.british.pdf | Bin 0 -> 101693 bytes .../examples/changes.example.language.english.pdf | Bin 0 -> 101521 bytes .../examples/changes.example.language.french.pdf | Bin 0 -> 102637 bytes .../examples/changes.example.language.german.pdf | Bin 0 -> 102351 bytes .../examples/changes.example.language.italian.pdf | Bin 0 -> 101650 bytes .../examples/changes.example.language.ngerman.pdf | Bin 0 -> 102351 bytes .../examples/changes.example.listofchanges.all.pdf | Bin 88827 -> 101072 bytes ...hanges.example.listofchanges.compactsummary.pdf | Bin 86747 -> 99018 bytes .../changes.example.listofchanges.list.pdf | Bin 84996 -> 96227 bytes .../changes.example.listofchanges.show.pdf | Bin 89128 -> 102974 bytes .../changes.example.listofchanges.summary.pdf | Bin 97975 -> 98503 bytes .../changes.example.listofchanges.title.pdf | Bin 88389 -> 101509 bytes .../changes.example.listofchanges.wrong.pdf | Bin 84996 -> 96944 bytes .../examples/changes.example.markup.bfit.pdf | Bin 86058 -> 98081 bytes .../examples/changes.example.markup.default.pdf | Bin 82295 -> 94179 bytes .../examples/changes.example.markup.nocolor.pdf | Bin 84681 -> 96233 bytes .../examples/changes.example.markup.underlined.pdf | Bin 84812 -> 96684 bytes .../examples/changes.example.markup.wrong.pdf | Bin 82295 -> 93926 bytes .../examples/changes.example.package.hyperref.pdf | Bin 97399 -> 98269 bytes .../changes.example.packageoptions.todonotes.pdf | Bin 104166 -> 116920 bytes .../changes.example.packageoptions.truncate.pdf | Bin 83517 -> 95366 bytes .../changes.example.packageoptions.ulem.pdf | Bin 75270 -> 87708 bytes .../changes.example.packageoptions.xcolor.pdf | Bin 84182 -> 96528 bytes .../examples/changes.example.screenshot.pdf | Bin 143467 -> 143467 bytes .../examples/changes.example.setaddedmarkup.pdf | Bin 94860 -> 94860 bytes .../examples/changes.example.setanonymousname.pdf | Bin 0 -> 103987 bytes .../examples/changes.example.setauthormarkup.pdf | Bin 85414 -> 85414 bytes .../changes.example.setauthormarkupposition.pdf | Bin 93585 -> 93585 bytes .../changes.example.setauthormarkuptext.pdf | Bin 94839 -> 96561 bytes .../examples/changes.example.setcommentmarkup.pdf | Bin 94058 -> 94058 bytes .../examples/changes.example.setdeletedmarkup.pdf | Bin 94091 -> 94091 bytes .../changes.example.sethighlightmarkup.pdf | Bin 93929 -> 93929 bytes .../examples/changes.example.setlocextension.pdf | Bin 99681 -> 101105 bytes .../examples/changes.example.setsocextension.pdf | Bin 99585 -> 101103 bytes .../examples/changes.example.setsummarytowidth.pdf | Bin 98926 -> 99253 bytes .../examples/changes.example.setsummarywidth.pdf | Bin 97786 -> 98920 bytes .../examples/changes.example.settruncatewidth.pdf | Bin 96380 -> 97128 bytes .../changes/examples/changes.example.simple.pdf | Bin 92919 -> 92919 bytes macros/latex/contrib/changes/regression.dtx | 11 +- .../latex/contrib/changes/userdoc/changes.de.tex | 13 + .../latex/contrib/changes/userdoc/changes.en.tex | 12 + .../changes/userdoc/setanonymousname_ex.tex | 2 + .../changes/userdoc/setanonymousname_in.tex | 1 + macros/latex/contrib/huawei/DEPENDS.txt | 2 +- macros/latex/contrib/huawei/README.md | 2 +- macros/latex/contrib/huawei/huawei.cls | 37 +- macros/latex/contrib/huawei/huawei.pdf | Bin 336511 -> 336670 bytes macros/latex/contrib/huawei/huawei.tex | 4 +- macros/latex/contrib/huawei/samples/huawei-cfp.tex | 2 +- macros/latex/contrib/tudscr/README.md | 17 +- macros/latex/contrib/tudscr/doc/LICENSE.md | 8 + macros/latex/contrib/tudscr/doc/tudscr.pdf | Bin 1099181 -> 1149095 bytes macros/latex/contrib/tudscr/doc/tudscr_print.pdf | Bin 1083765 -> 1133762 bytes macros/latex/contrib/tudscr/doc/tudscrsource.pdf | Bin 1055711 -> 1074794 bytes .../contrib/tudscr/doc/tutorials/mathswap.pdf | Bin 121768 -> 128941 bytes .../contrib/tudscr/doc/tutorials/mathtype.pdf | Bin 138619 -> 148136 bytes .../contrib/tudscr/doc/tutorials/treatise.pdf | Bin 857680 -> 896761 bytes .../tudscr/source/doc/tudscr-installation.tex | 10 +- macros/latex/contrib/tudscr/source/doc/tudscr.tex | 2 +- macros/latex/contrib/tudscr/source/tudscr-comp.dtx | 8 +- .../latex/contrib/tudscr/source/tudscr-fonts.dtx | 53 +- macros/latex/contrib/tudscr/source/tudscr-misc.dtx | 12 +- .../latex/contrib/tudscr/source/tudscr-version.dtx | 2 +- .../upmethodology/doc/upmethodology-doc.pdf | Bin 323938 -> 326776 bytes .../upmethodology/doc/upmethodology-doc.tex | 48 + .../latex/contrib/upmethodology/src/UPMVERSION.def | 2 +- .../upmethodology/src/upmethodology-backpage.sty | 4 +- .../upmethodology/src/upmethodology-code.sty | 4 +- .../upmethodology/src/upmethodology-document.cls | 4 +- .../upmethodology/src/upmethodology-document.sty | 4 +- .../upmethodology/src/upmethodology-extension.sty | 4 +- .../upmethodology/src/upmethodology-fmt.sty | 45 +- .../upmethodology/src/upmethodology-frontpage.sty | 4 +- .../upmethodology/src/upmethodology-p-common.sty | 4 +- .../upmethodology/src/upmethodology-spec.sty | 4 +- .../upmethodology/src/upmethodology-task.sty | 4 +- .../upmethodology/src/upmethodology-version.sty | 4 +- 151 files changed, 4352 insertions(+), 139 deletions(-) create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/License create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/Makefile create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/README.md create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/figures/thulogo.pdf create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/macros.tex create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/makebeamer.bat create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/makeclean.bat create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/makecleanall.bat create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/makedoc.bat create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/reference.bib create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.pdf create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.tex create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.bst create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.dtx create mode 100644 macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.commentmarkup.wrong.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.highlightmarkup.wrong.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.language.british.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.language.english.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.language.french.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.language.german.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.language.italian.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.language.ngerman.pdf create mode 100644 macros/latex/contrib/changes/examples/changes.example.setanonymousname.pdf create mode 100644 macros/latex/contrib/changes/userdoc/setanonymousname_ex.tex create mode 100644 macros/latex/contrib/changes/userdoc/setanonymousname_in.tex (limited to 'macros/latex') diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/License b/macros/latex/contrib/beamer-contrib/themes/thubeamer/License new file mode 100644 index 0000000000..4db9b5af29 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/License @@ -0,0 +1,415 @@ +The LaTeX Project Public License +=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + +LPPL Version 1.3c 2008-05-04 + +Copyright 1999 2002-2008 LaTeX3 Project + Everyone is allowed to distribute verbatim copies of this + license document, but modification of it is not allowed. + + +PREAMBLE +======== + +The LaTeX Project Public License (LPPL) is the primary license under +which the LaTeX kernel and the base LaTeX packages are distributed. + +You may use this license for any work of which you hold the copyright +and which you wish to distribute. This license may be particularly +suitable if your work is TeX-related (such as a LaTeX package), but +it is written in such a way that you can use it even if your work is +unrelated to TeX. + +The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE', +below, gives instructions, examples, and recommendations for authors +who are considering distributing their works under this license. + +This license gives conditions under which a work may be distributed +and modified, as well as conditions under which modified versions of +that work may be distributed. + +We, the LaTeX3 Project, believe that the conditions below give you +the freedom to make and distribute modified versions of your work +that conform with whatever technical specifications you wish while +maintaining the availability, integrity, and reliability of +that work. If you do not see how to achieve your goal while +meeting these conditions, then read the document `cfgguide.tex' +and `modguide.tex' in the base LaTeX distribution for suggestions. + + +DEFINITIONS +=========== + +In this license document the following terms are used: + + `Work' + Any work being distributed under this License. + + `Derived Work' + Any work that under any applicable law is derived from the Work. + + `Modification' + Any procedure that produces a Derived Work under any applicable + law -- for example, the production of a file containing an + original file associated with the Work or a significant portion of + such a file, either verbatim or with modifications and/or + translated into another language. + + `Modify' + To apply any procedure that produces a Derived Work under any + applicable law. + + `Distribution' + Making copies of the Work available from one person to another, in + whole or in part. Distribution includes (but is not limited to) + making any electronic components of the Work accessible by + file transfer protocols such as FTP or HTTP or by shared file + systems such as Sun's Network File System (NFS). + + `Compiled Work' + A version of the Work that has been processed into a form where it + is directly usable on a computer system. This processing may + include using installation facilities provided by the Work, + transformations of the Work, copying of components of the Work, or + other activities. Note that modification of any installation + facilities provided by the Work constitutes modification of the Work. + + `Current Maintainer' + A person or persons nominated as such within the Work. If there is + no such explicit nomination then it is the `Copyright Holder' under + any applicable law. + + `Base Interpreter' + A program or process that is normally needed for running or + interpreting a part or the whole of the Work. + + A Base Interpreter may depend on external components but these + are not considered part of the Base Interpreter provided that each + external component clearly identifies itself whenever it is used + interactively. Unless explicitly specified when applying the + license to the Work, the only applicable Base Interpreter is a + `LaTeX-Format' or in the case of files belonging to the + `LaTeX-format' a program implementing the `TeX language'. + + + +CONDITIONS ON DISTRIBUTION AND MODIFICATION +=========================================== + +1. Activities other than distribution and/or modification of the Work +are not covered by this license; they are outside its scope. In +particular, the act of running the Work is not restricted and no +requirements are made concerning any offers of support for the Work. + +2. You may distribute a complete, unmodified copy of the Work as you +received it. Distribution of only part of the Work is considered +modification of the Work, and no right to distribute such a Derived +Work may be assumed under the terms of this clause. + +3. You may distribute a Compiled Work that has been generated from a +complete, unmodified copy of the Work as distributed under Clause 2 +above, as long as that Compiled Work is distributed in such a way that +the recipients may install the Compiled Work on their system exactly +as it would have been installed if they generated a Compiled Work +directly from the Work. + +4. If you are the Current Maintainer of the Work, you may, without +restriction, modify the Work, thus creating a Derived Work. You may +also distribute the Derived Work without restriction, including +Compiled Works generated from the Derived Work. Derived Works +distributed in this manner by the Current Maintainer are considered to +be updated versions of the Work. + +5. If you are not the Current Maintainer of the Work, you may modify +your copy of the Work, thus creating a Derived Work based on the Work, +and compile this Derived Work, thus creating a Compiled Work based on +the Derived Work. + +6. If you are not the Current Maintainer of the Work, you may +distribute a Derived Work provided the following conditions are met +for every component of the Work unless that component clearly states +in the copyright notice that it is exempt from that condition. Only +the Current Maintainer is allowed to add such statements of exemption +to a component of the Work. + + a. If a component of this Derived Work can be a direct replacement + for a component of the Work when that component is used with the + Base Interpreter, then, wherever this component of the Work + identifies itself to the user when used interactively with that + Base Interpreter, the replacement component of this Derived Work + clearly and unambiguously identifies itself as a modified version + of this component to the user when used interactively with that + Base Interpreter. + + b. Every component of the Derived Work contains prominent notices + detailing the nature of the changes to that component, or a + prominent reference to another file that is distributed as part + of the Derived Work and that contains a complete and accurate log + of the changes. + + c. No information in the Derived Work implies that any persons, + including (but not limited to) the authors of the original version + of the Work, provide any support, including (but not limited to) + the reporting and handling of errors, to recipients of the + Derived Work unless those persons have stated explicitly that + they do provide such support for the Derived Work. + + d. You distribute at least one of the following with the Derived Work: + + 1. A complete, unmodified copy of the Work; + if your distribution of a modified component is made by + offering access to copy the modified component from a + designated place, then offering equivalent access to copy + the Work from the same or some similar place meets this + condition, even though third parties are not compelled to + copy the Work along with the modified component; + + 2. Information that is sufficient to obtain a complete, + unmodified copy of the Work. + +7. If you are not the Current Maintainer of the Work, you may +distribute a Compiled Work generated from a Derived Work, as long as +the Derived Work is distributed to all recipients of the Compiled +Work, and as long as the conditions of Clause 6, above, are met with +regard to the Derived Work. + +8. The conditions above are not intended to prohibit, and hence do not +apply to, the modification, by any method, of any component so that it +becomes identical to an updated version of that component of the Work as +it is distributed by the Current Maintainer under Clause 4, above. + +9. Distribution of the Work or any Derived Work in an alternative +format, where the Work or that Derived Work (in whole or in part) is +then produced by applying some process to that format, does not relax or +nullify any sections of this license as they pertain to the results of +applying that process. + +10. a. A Derived Work may be distributed under a different license + provided that license itself honors the conditions listed in + Clause 6 above, in regard to the Work, though it does not have + to honor the rest of the conditions in this license. + + b. If a Derived Work is distributed under a different license, that + Derived Work must provide sufficient documentation as part of + itself to allow each recipient of that Derived Work to honor the + restrictions in Clause 6 above, concerning changes from the Work. + +11. This license places no restrictions on works that are unrelated to +the Work, nor does this license place any restrictions on aggregating +such works with the Work by any means. + +12. Nothing in this license is intended to, or may be used to, prevent +complete compliance by all parties with all applicable laws. + + +NO WARRANTY +=========== + +There is no warranty for the Work. Except when otherwise stated in +writing, the Copyright Holder provides the Work `as is', without +warranty of any kind, either expressed or implied, including, but not +limited to, the implied warranties of merchantability and fitness for a +particular purpose. The entire risk as to the quality and performance +of the Work is with you. Should the Work prove defective, you assume +the cost of all necessary servicing, repair, or correction. + +In no event unless required by applicable law or agreed to in writing +will The Copyright Holder, or any author named in the components of the +Work, or any other party who may distribute and/or modify the Work as +permitted above, be liable to you for damages, including any general, +special, incidental or consequential damages arising out of any use of +the Work or out of inability to use the Work (including, but not limited +to, loss of data, data being rendered inaccurate, or losses sustained by +anyone as a result of any failure of the Work to operate with any other +programs), even if the Copyright Holder or said author or said other +party has been advised of the possibility of such damages. + + +MAINTENANCE OF THE WORK +======================= + +The Work has the status `author-maintained' if the Copyright Holder +explicitly and prominently states near the primary copyright notice in +the Work that the Work can only be maintained by the Copyright Holder +or simply that it is `author-maintained'. + +The Work has the status `maintained' if there is a Current Maintainer +who has indicated in the Work that they are willing to receive error +reports for the Work (for example, by supplying a valid e-mail +address). It is not required for the Current Maintainer to acknowledge +or act upon these error reports. + +The Work changes from status `maintained' to `unmaintained' if there +is no Current Maintainer, or the person stated to be Current +Maintainer of the work cannot be reached through the indicated means +of communication for a period of six months, and there are no other +significant signs of active maintenance. + +You can become the Current Maintainer of the Work by agreement with +any existing Current Maintainer to take over this role. + +If the Work is unmaintained, you can become the Current Maintainer of +the Work through the following steps: + + 1. Make a reasonable attempt to trace the Current Maintainer (and + the Copyright Holder, if the two differ) through the means of + an Internet or similar search. + + 2. If this search is successful, then enquire whether the Work + is still maintained. + + a. If it is being maintained, then ask the Current Maintainer + to update their communication data within one month. + + b. If the search is unsuccessful or no action to resume active + maintenance is taken by the Current Maintainer, then announce + within the pertinent community your intention to take over + maintenance. (If the Work is a LaTeX work, this could be + done, for example, by posting to comp.text.tex.) + + 3a. If the Current Maintainer is reachable and agrees to pass + maintenance of the Work to you, then this takes effect + immediately upon announcement. + + b. If the Current Maintainer is not reachable and the Copyright + Holder agrees that maintenance of the Work be passed to you, + then this takes effect immediately upon announcement. + + 4. If you make an `intention announcement' as described in 2b. above + and after three months your intention is challenged neither by + the Current Maintainer nor by the Copyright Holder nor by other + people, then you may arrange for the Work to be changed so as + to name you as the (new) Current Maintainer. + + 5. If the previously unreachable Current Maintainer becomes + reachable once more within three months of a change completed + under the terms of 3b) or 4), then that Current Maintainer must + become or remain the Current Maintainer upon request provided + they then update their communication data within one month. + +A change in the Current Maintainer does not, of itself, alter the fact +that the Work is distributed under the LPPL license. + +If you become the Current Maintainer of the Work, you should +immediately provide, within the Work, a prominent and unambiguous +statement of your status as Current Maintainer. You should also +announce your new status to the same pertinent community as +in 2b) above. + + +WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE +====================================================== + +This section contains important instructions, examples, and +recommendations for authors who are considering distributing their +works under this license. These authors are addressed as `you' in +this section. + +Choosing This License or Another License +---------------------------------------- + +If for any part of your work you want or need to use *distribution* +conditions that differ significantly from those in this license, then +do not refer to this license anywhere in your work but, instead, +distribute your work under a different license. You may use the text +of this license as a model for your own license, but your license +should not refer to the LPPL or otherwise give the impression that +your work is distributed under the LPPL. + +The document `modguide.tex' in the base LaTeX distribution explains +the motivation behind the conditions of this license. It explains, +for example, why distributing LaTeX under the GNU General Public +License (GPL) was considered inappropriate. Even if your work is +unrelated to LaTeX, the discussion in `modguide.tex' may still be +relevant, and authors intending to distribute their works under any +license are encouraged to read it. + +A Recommendation on Modification Without Distribution +----------------------------------------------------- + +It is wise never to modify a component of the Work, even for your own +personal use, without also meeting the above conditions for +distributing the modified component. While you might intend that such +modifications will never be distributed, often this will happen by +accident -- you may forget that you have modified that component; or +it may not occur to you when allowing others to access the modified +version that you are thus distributing it and violating the conditions +of this license in ways that could have legal implications and, worse, +cause problems for the community. It is therefore usually in your +best interest to keep your copy of the Work identical with the public +one. Many works provide ways to control the behavior of that work +without altering any of its licensed components. + +How to Use This License +----------------------- + +To use this license, place in each of the components of your work both +an explicit copyright notice including your name and the year the work +was authored and/or last substantially modified. Include also a +statement that the distribution and/or modification of that +component is constrained by the conditions in this license. + +Here is an example of such a notice and statement: + + %% pig.dtx + %% Copyright 2005 M. Y. Name + % + % This work may be distributed and/or modified under the + % conditions of the LaTeX Project Public License, either version 1.3 + % of this license or (at your option) any later version. + % The latest version of this license is in + % http://www.latex-project.org/lppl.txt + % and version 1.3 or later is part of all distributions of LaTeX + % version 2005/12/01 or later. + % + % This work has the LPPL maintenance status `maintained'. + % + % The Current Maintainer of this work is M. Y. Name. + % + % This work consists of the files pig.dtx and pig.ins + % and the derived file pig.sty. + +Given such a notice and statement in a file, the conditions +given in this license document would apply, with the `Work' referring +to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being +generated from `pig.dtx' using `pig.ins'), the `Base Interpreter' +referring to any `LaTeX-Format', and both `Copyright Holder' and +`Current Maintainer' referring to the person `M. Y. Name'. + +If you do not want the Maintenance section of LPPL to apply to your +Work, change `maintained' above into `author-maintained'. +However, we recommend that you use `maintained', as the Maintenance +section was added in order to ensure that your Work remains useful to +the community even when you can no longer maintain and support it +yourself. + +Derived Works That Are Not Replacements +--------------------------------------- + +Several clauses of the LPPL specify means to provide reliability and +stability for the user community. They therefore concern themselves +with the case that a Derived Work is intended to be used as a +(compatible or incompatible) replacement of the original Work. If +this is not the case (e.g., if a few lines of code are reused for a +completely different task), then clauses 6b and 6d shall not apply. + + +Important Recommendations +------------------------- + + Defining What Constitutes the Work + + The LPPL requires that distributions of the Work contain all the + files of the Work. It is therefore important that you provide a + way for the licensee to determine which files constitute the Work. + This could, for example, be achieved by explicitly listing all the + files of the Work near the copyright notice of each file or by + using a line such as: + + % This work consists of all files listed in manifest.txt. + + in that place. In the absence of an unequivocal list it might be + impossible for the licensee to determine what is considered by you + to comprise the Work and, in such a case, the licensee would be + entitled to make reasonable conjectures as to which files comprise + the Work. diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/Makefile b/macros/latex/contrib/beamer-contrib/themes/thubeamer/Makefile new file mode 100644 index 0000000000..28ec55e5e5 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/Makefile @@ -0,0 +1,18 @@ +beamer: + pdflatex -synctex=1 -interaction=nonstopmode main + bibtex main + pdflatex -synctex=1 -interaction=nonstopmode main + pdflatex -synctex=1 -interaction=nonstopmode main + +doc: + xelatex hitszbeamer.dtx + makeindex -s gind.ist -o hitszbeamer.ind hitszbeamer.idx + makeindex -s gglo.ist -o hitszbeamer.gls hitszbeamer.glo + xelatex hitszbeamer.dtx + xelatex hitszbeamer.dtx + +clean: + rm -f *.toc *.bbl *.blg *.out *.aux *.log *.bak *.thm *.synctex.gz *.fdb_latexmk *.fls *.glo *.gls *.idx *.ilg *.ind *.nav *.snm *.hd + +cleanall: + rm -f *.toc *.bbl *.blg *.out *.aux *.log *.bak *.thm *.synctex.gz *.fdb_latexmk *.fls *.glo *.gls *.idx *.ilg *.ind *.nav *.snm *.hd *.sty *.ins \ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/README.md b/macros/latex/contrib/beamer-contrib/themes/thubeamer/README.md new file mode 100644 index 0000000000..99ac44a9bd --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/README.md @@ -0,0 +1,133 @@ + + + +# thubeamer: A Beamer Theme for Tsinghua University (THU) + +# thubeamer:清华大学 Beamer 模板 + +[GitHub](https://github.com/YangLaTeX/thubeamer) | [Download](https://github.com/YangLaTeX/thubeamer/releases) | [Wiki](https://github.com/YangLaTeX/thubeamer/wiki) | [CTAN](https://www.ctan.org/pkg/thubeamer) + +# Introduction to thubeamer + +**thubeamer** is a **beamer theme** designed for Tsinghua University (THU). Current version is 1.0.0, updated on 2021/07/07. + +```latex + |- figures + |- thulogo.pdf + |- macros.tex + |- main.tex + |- main.pdf + |- makebeamer.bat + |- makeclean.bat + |- makecleanall.bat + |- makedoc.bat + |- Makefile + |- README.md + |- reference.bib + |- thubeamer.bst + |- thubeamer.dtx + |- thubeamer.pdf +``` + +# thubeamer 简介 + +thubeamer 是清华大学风格 Beamer 模板,当前版本1.0.0,更新于2021年07月07日。 + +# Documentation + +Download and unzip the template. Specific usage documentation and examples can be found in the files below: + +* Template usage (thubeamer.pdf, in Chinese) +* Template example (main.pdf, in Chinese) +* Brief Introduction (README.md, both in Chinese and English) + +# 说明文档 + +下载并解压本模板,文件夹中包含以下说明文档: + +* 模板开发文档(thubeamer.pdf,中文版) +* 模板撰写示例(main.pdf,中文版) +* 模板简介(README.md,中英双语) + +# Downloads + +* Published version: [CTAN](https://www.ctan.org/pkg/thubeamer) +* Developer version: [GitHub](https://github.com/YangLaTeX/thubeamer) + +# 下载 + +* 发布版本:[CTAN](https://www.ctan.org/pkg/thubeamer) +* 开发版本:[GitHub](https://github.com/YangLaTeX/thubeamer) + +# Reporting Issues + +Please follow the procedure below: + +* [GitHub Issues](https://github.com/YangLaTeX/thubeamer/issues) +* [Educational Email](mailto:yangjx20@mails.tsinghua.edu.cn) +* [Gmail](mailto:yanglatex2e@gmail.com) + +# 模板问题反馈 + +请按照以下顺序反馈问题: + +* [GitHub 问题反馈](https://github.com/YangLaTeX/thubeamer/issues) +* [教育邮箱](mailto:yangjx20@mails.tsinghua.edu.cn) +* [Gmail 邮箱](mailto:yanglatex2e@gmail.com) + +# Makefile Usage + +To use Makefile, you should have GNU `make` tool installed. + +```bash +make doc # compile documentation (required before compiling the beamer) +make beamer # compile beamer +make clean # clean auxiliary files +make cleanall # clean auxiliary files and style files +``` + +# 使用 Makefile + +使用Makefile之前请确保已安装GNU `make`工具。 + +```bash +make doc # 编译说明文档(在编译 beamer之前必须编译说明文档) +make beamer # 编译 beamer +make clean # 清除辅助文件 +make cleanall # 清除辅助文件与样式文件 +``` + +# batch Usage + +`makedoc.bat`, `makebeamer.bat`, `makeclean.bat` and `makecleanall` are designed for windows platform. Double click these files, then they will echo corresponding functions automatically. + +```bash +makedoc # compile documentation (required before compiling the beamer) +makebeamer # compile beamer +makeclean # clean auxiliary files +makecleanall # clean auxiliary files and style files +``` + +# 使用编译脚本 + +`makedoc.bat`、`makebeamer.bat`、`makeclean.bat`与`makecleanall`为windows编译脚本,双击即可执行相应的功能。 + +```bash +makedoc # 编译说明文档(在编译 beamer之前必须编译说明文档) +makebeamer # 编译 beamer +makeclean # 清除辅助文件 +makecleanall # 清除辅助文件与样式文件 +``` + +# License + +This material is subject to the [LATEX Project Public License 1.3c](https://ctan.org/license/lppl1.3) or any later version. + +# 协议 + +本模板的发布遵照 [LATEX Project Public License 1.3c](https://ctan.org/license/lppl1.3) 协议或其后版本。 + +# Acknowledgements(致谢) + +* [XDUstyle](https://github.com/StickCui/XDUstyle-Beamer-Theme) +* [THUBeamer](https://github.com/tl3shi/THUBeamer) diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/figures/thulogo.pdf b/macros/latex/contrib/beamer-contrib/themes/thubeamer/figures/thulogo.pdf new file mode 100644 index 0000000000..594a342957 Binary files /dev/null and b/macros/latex/contrib/beamer-contrib/themes/thubeamer/figures/thulogo.pdf differ diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/macros.tex b/macros/latex/contrib/beamer-contrib/themes/thubeamer/macros.tex new file mode 100644 index 0000000000..428b73ddca --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/macros.tex @@ -0,0 +1,138 @@ +% About: Macros for Vector, Matrix, Tensor, Math Operator and Misc +% Author: Jingxuan Yang + +% vectors +\newcommand{\va}{\bm{a}} \newcommand{\vah}{\hat{\bm{a}}} \newcommand{\ah}{\hat{a}} \newcommand{\vat}{\tilde{\bm{a}}} \newcommand{\at}{\tilde{a}} +\newcommand{\vb}{\bm{b}} \newcommand{\vbh}{\hat{\bm{b}}} \newcommand{\bh}{\hat{b}} \newcommand{\vbt}{\tilde{\bm{b}}} \newcommand{\bt}{\tilde{b}} +\newcommand{\vc}{\bm{c}} \newcommand{\vch}{\hat{\bm{c}}} \newcommand{\ch}{\hat{c}} \newcommand{\vct}{\tilde{\bm{c}}} \newcommand{\ct}{\tilde{c}} +\newcommand{\vd}{\bm{d}} \newcommand{\vdh}{\hat{\bm{d}}} \newcommand{\dhat}{\hat{d}} \newcommand{\vdt}{\tilde{\bm{d}}} \newcommand{\dt}{\tilde{d}} +\newcommand{\ve}{\bm{e}} \newcommand{\veh}{\hat{\bm{e}}} \newcommand{\eh}{\hat{e}} \newcommand{\vet}{\tilde{\bm{e}}} \newcommand{\et}{\tilde{e}} +\newcommand{\vf}{\bm{f}} \newcommand{\vfh}{\hat{\bm{f}}} \newcommand{\fh}{\hat{f}} \newcommand{\vft}{\tilde{\bm{f}}} \newcommand{\ft}{\tilde{f}} +\newcommand{\vg}{\bm{g}} \newcommand{\vgh}{\hat{\bm{g}}} \newcommand{\gh}{\hat{g}} \newcommand{\vgt}{\tilde{\bm{g}}} \newcommand{\gt}{\tilde{g}} +\newcommand{\vh}{\bm{h}} \newcommand{\vhh}{\hat{\bm{h}}} \newcommand{\hh}{\hat{h}} \newcommand{\vht}{\tilde{\bm{h}}} \newcommand{\htild}{\tilde{h}} +\newcommand{\vi}{\bm{i}} \newcommand{\vih}{\hat{\bm{i}}} \newcommand{\ih}{\hat{i}} \newcommand{\vit}{\tilde{\bm{i}}} \newcommand{\itild}{\tilde{i}} +\newcommand{\vj}{\bm{j}} \newcommand{\vjh}{\hat{\bm{j}}} \newcommand{\jh}{\hat{j}} \newcommand{\vjt}{\tilde{\bm{j}}} \newcommand{\jt}{\tilde{j}} +\newcommand{\vk}{\bm{k}} \newcommand{\vkh}{\hat{\bm{k}}} \newcommand{\kh}{\hat{k}} \newcommand{\vkt}{\tilde{\bm{k}}} \newcommand{\kt}{\tilde{k}} +\newcommand{\vl}{\bm{l}} \newcommand{\vlh}{\hat{\bm{l}}} \newcommand{\lh}{\hat{l}} \newcommand{\vlt}{\tilde{\bm{l}}} \newcommand{\lt}{\tilde{l}} +\newcommand{\vm}{\bm{m}} \newcommand{\vmh}{\hat{\bm{m}}} \newcommand{\mh}{\hat{m}} \newcommand{\vmt}{\tilde{\bm{m}}} \newcommand{\mt}{\tilde{m}} +\newcommand{\vn}{\bm{n}} \newcommand{\vnh}{\hat{\bm{n}}} \newcommand{\nh}{\hat{n}} \newcommand{\vnt}{\tilde{\bm{n}}} \newcommand{\nt}{\tilde{n}} +\newcommand{\vo}{\bm{o}} \newcommand{\voh}{\hat{\bm{o}}} \newcommand{\oh}{\hat{o}} \newcommand{\vot}{\tilde{\bm{o}}} \newcommand{\ot}{\tilde{o}} +\newcommand{\vp}{\bm{p}} \newcommand{\vph}{\hat{\bm{p}}} \newcommand{\ph}{\hat{p}} \newcommand{\vpt}{\tilde{\bm{p}}} \newcommand{\pt}{\tilde{p}} +\newcommand{\vq}{\bm{q}} \newcommand{\vqh}{\hat{\bm{q}}} \newcommand{\qh}{\hat{q}} \newcommand{\vqt}{\tilde{\bm{q}}} \newcommand{\qt}{\tilde{q}} +\newcommand{\vr}{\bm{r}} \newcommand{\vrh}{\hat{\bm{r}}} \newcommand{\rh}{\hat{r}} \newcommand{\vrt}{\tilde{\bm{r}}} \newcommand{\rt}{\tilde{r}} +\newcommand{\vs}{\bm{s}} \newcommand{\vsh}{\hat{\bm{s}}} \newcommand{\sh}{\hat{s}} \newcommand{\vst}{\tilde{\bm{s}}} \newcommand{\st}{\tilde{s}} +\newcommand{\vt}{\bm{t}} \newcommand{\vth}{\hat{\bm{t}}} \newcommand{\that}{\hat{t}} \newcommand{\vtt}{\tilde{\bm{t}}} \newcommand{\ttil}{\tilde{t}} +\newcommand{\vu}{\bm{u}} \newcommand{\vuh}{\hat{\bm{u}}} \newcommand{\uh}{\hat{u}} \newcommand{\vut}{\tilde{\bm{u}}} \newcommand{\ut}{\tilde{u}} +\newcommand{\vv}{\bm{v}} \newcommand{\vvh}{\hat{\bm{v}}} \newcommand{\vhat}{\hat{v}} \newcommand{\vvt}{\tilde{\bm{v}}} \newcommand{\vtild}{\tilde{v}} +\newcommand{\vw}{\bm{w}} \newcommand{\vwh}{\hat{\bm{w}}} \newcommand{\wh}{\hat{w}} \newcommand{\vwt}{\tilde{\bm{w}}} \newcommand{\wt}{\tilde{w}} +\newcommand{\vx}{\bm{x}} \newcommand{\vxh}{\hat{\bm{x}}} \newcommand{\xh}{\hat{x}} \newcommand{\vxt}{\tilde{\bm{x}}} \newcommand{\xt}{\tilde{x}} +\newcommand{\vy}{\bm{y}} \newcommand{\vyh}{\hat{\bm{y}}} \newcommand{\yh}{\hat{y}} \newcommand{\vyt}{\tilde{\bm{y}}} \newcommand{\yt}{\tilde{y}} +\newcommand{\vz}{\bm{z}} \newcommand{\vzh}{\hat{\bm{z}}} \newcommand{\zh}{\hat{z}} \newcommand{\vzt}{\tilde{\bm{z}}} \newcommand{\zt}{\tilde{z}} + +\newcommand{\valpha}{\bm{\alpha}} +\newcommand{\vbeta}{\bm{\beta}} +\newcommand{\vgamma}{\bm{\gamma}} +\newcommand{\vtheta}{\bm{\theta}} +\newcommand{\vlambda}{\bm{\lambda}} +\newcommand{\vmu}{\bm{\mu}} +\newcommand{\vomega}{\bm{\omega}} + +\newcommand{\mSigma}{\bm{\Sigma}} + +\newcommand{\Fc}{\mathcal{F}} +\newcommand{\Xc}{\mathcal{X}} +\newcommand{\Yc}{\mathcal{Y}} +\newcommand{\Zc}{\mathcal{Z}} +\newcommand{\Gc}{\mathcal{G}} +\newcommand{\Hc}{\mathcal{H}} +\newcommand{\Dc}{\mathcal{D}} +\newcommand{\Cc}{\mathcal{C}} +\newcommand{\Rc}{\mathcal{R}} +\newcommand{\Lc}{\mathcal{L}} +\newcommand{\Nc}{\mathcal{N}} +\newcommand{\Tc}{\mathcal{T}} + +% matrices +\newcommand{\ma}{\bm{A}} +\newcommand{\mb}{\bm{B}} +\newcommand{\md}{\bm{D}} +\newcommand{\mH}{\bm{H}} +\newcommand{\mE}{\bm{E}} +\newcommand{\mi}{\bm{I}} +\newcommand{\mk}{\bm{K}} +\newcommand{\ml}{\bm{L}} +\newcommand{\mn}{\bm{N}} +\newcommand{\mP}{\bm{P}} +\newcommand{\mq}{\bm{Q}} +\newcommand{\mr}{\bm{R}} +\newcommand{\mU}{\bm{U}} +\newcommand{\mv}{\bm{V}} +\newcommand{\mw}{\bm{W}} +\newcommand{\mx}{\bm{X}} +\newcommand{\my}{\bm{Y}} +\newcommand{\mz}{\bm{Z}} + +% tensors +\newcommand{\tp}{\mathsf{P}} +\newcommand{\tu}{\mathsf{U}} +\newcommand{\tx}{\mathsf{X}} +\newcommand{\ty}{\mathsf{Y}} +\newcommand{\tz}{\mathsf{Z}} +\newcommand{\tw}{\mathsf{W}} +\newcommand{\tf}{\mathsf{F}} +\newcommand{\ta}{\mathsf{A}} +\renewcommand{\th}{\mathsf{H}} + +% norms +\newcommand{\mynorm}[2]{\| {#1} \|_{#2}} +\newcommand{\norm}[2]{\mynorm{#1}{#2}} +\newcommand{\bignorm}[2]{\left\| {#1} \right\|_{#2}} +\newcommand{\norml}[1]{\mynorm{#1}{1}} +\newcommand{\bignorml}[1]{\bignorm{#1}{1}} +\newcommand{\infnorm}[1]{\mynorm{#1}{\infty}} +\newcommand{\biginfnorm}[1]{\bignorm{#1}{\infty}} +\newcommand{\oneinf}{\ell_{1,\infty}} +\newcommand{\onetwo}{\ell_{1,2}} +\newcommand{\oneinfnorm}[1]{\mynorm{#1}{1,\infty}} +\newcommand{\bigoneinf}[1]{\bignorm{#1}{1,\infty}} +\newcommand{\onetwonorm}[1]{\mynorm{#1}{1,2}} +\newcommand{\bigonetwo}[1]{\bignorm{#1}{1,2}} +\newcommand{\enorm}[1]{\mynorm{#1}{2}} +\newcommand{\bigenorm}[1]{\bignorm{#1}{2}} +\newcommand{\znorm}[1]{\mynorm{#1}{0}} +\newcommand{\bigznorm}[1]{\bignorm{#1}{0}} +\newcommand{\frob}[1]{\|{#1}\|_{\text{F}}} +\newcommand{\bigfrob}[1]{\bignorm{#1}{\text{F}}} +\newcommand{\grpnorm}[2]{\norm{#1}{\text{Gr}(#2)}} + +% math operators +\DeclareMathOperator*{\argmin}{argmin} +\DeclareMathOperator*{\argmax}{argmax} +\DeclareMathOperator{\divg}{div} +\DeclareMathOperator{\dom}{dom} +\DeclareMathOperator{\interior}{int} +\DeclareMathOperator{\ri}{ri} +\DeclareMathOperator{\sgn}{sgn} +\DeclareMathOperator{\trace}{Tr} +\DeclareMathOperator{\diag}{diag} +\DeclareMathOperator{\rank}{rank} +\DeclareMathOperator{\range}{range} +\DeclareMathOperator{\vect}{vec} +\DeclareMathOperator{\prox}{prox} +\DeclareMathOperator{\intr}{int} +\DeclareMathOperator{\relint}{ri} +\DeclareMathOperator{\hard}{hard} +\DeclareMathOperator{\id}{id} +% \DeclareMathOperator{\tf}{tf} +% \DeclareMathOperator{\idf}{idf} + +% misc +\newcommand{\gs}{\geqslant} +\newcommand{\ls}{\leqslant} +\newcommand{\set}[1]{\left\{ {#1}\right\}} + +\newcommand{\defeq}{\ \stackrel{\text{def}}{=}\ } +\newcommand{\ip}[2]{\left\langle#1, #2\right\rangle} +\newcommand{\reals}{\mathbb{R}} +\newcommand{\complex}{\mathbb{C}} +\newcommand{\half}{\frac{1}{2}} diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/makebeamer.bat b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makebeamer.bat new file mode 100644 index 0000000000..30e3d263e7 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makebeamer.bat @@ -0,0 +1,5 @@ +latexmk -c main +pdflatex -synctex=1 -interaction=nonstopmode main +bibtex main +pdflatex -synctex=1 -interaction=nonstopmode main +pdflatex -synctex=1 -interaction=nonstopmode main \ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/makeclean.bat b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makeclean.bat new file mode 100644 index 0000000000..70546e3141 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makeclean.bat @@ -0,0 +1,20 @@ +@echo off +del *.toc /s +del *.bbl /s +del *.blg /s +del *.out /s +del *.aux /s +del *.log /s +del *.bak /s +del *.thm /s +del *.synctex.gz /s +del *.fdb_latexmk /s +del *.fls /s +del *.glo /s +del *.gls /s +del *.idx /s +del *.ilg /s +del *.ind /s +del *.nav /s +del *.snm /s +del *.hd /s \ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/makecleanall.bat b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makecleanall.bat new file mode 100644 index 0000000000..4e1a6bd2b8 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makecleanall.bat @@ -0,0 +1,22 @@ +@echo off +del *.toc /s +del *.bbl /s +del *.blg /s +del *.out /s +del *.aux /s +del *.log /s +del *.bak /s +del *.thm /s +del *.synctex.gz /s +del *.fdb_latexmk /s +del *.fls /s +del *.glo /s +del *.gls /s +del *.idx /s +del *.ilg /s +del *.ind /s +del *.nav /s +del *.snm /s +del *.hd /s +del *.ins /s +del *.sty /s \ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/makedoc.bat b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makedoc.bat new file mode 100644 index 0000000000..77e999cae0 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/makedoc.bat @@ -0,0 +1,5 @@ +xelatex thubeamer.dtx +makeindex -s gind.ist -o thubeamer.ind thubeamer.idx +makeindex -s gglo.ist -o thubeamer.gls thubeamer.glo +xelatex thubeamer.dtx +xelatex thubeamer.dtx \ No newline at end of file diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/reference.bib b/macros/latex/contrib/beamer-contrib/themes/thubeamer/reference.bib new file mode 100644 index 0000000000..6b6f382e5f --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/reference.bib @@ -0,0 +1,140 @@ +% !Mode:: "TeX:UTF-8" + +@ARTICLE{ren2010, + AUTHOR = "任春珍 and 杨再华 and 孙刚 and 贾探春", + TITLE = "空环境飞行器交会对接设备精测工艺方法研究", + JOURNAL = "航天器环境工程", + PAGES = "768--771", + VOLUME = "27", + number = "6", + YEAR = "2010", + language ="zh", +} + +@ARTICLE{Gravagne2003, + author={I A {Gravagne} and C D {Rahn} and I D {Walker}}, + journal={IEEE/ASME Transactions on Mechatronics}, + title={Large Deflection Dynamics and Control for Planar Continuum Robots}, + year={2003}, + volume={8}, + number={2}, + pages={299--307}, +} + +@article{webster2010, + title={Design and Kinematic Modeling of Constant Curvature Continuum Robots: A Review}, + author={Webster III, Robert J and Jones, Bryan A}, + journal={The International Journal of Robotics Research}, + volume={29}, + number={13}, + pages={1661--1683}, + year={2010}, +} + +@phdthesis{liu2016, + title={面向狭小空间作业的绳索驱动超冗余机械臂的研究}, + author={刘天亮}, + school={哈尔滨工业大学}, + year={2016}, + pages={61--63}, + ADDRESS="深圳", +} + +@phdthesis{fu2018, + title={狭小空间作业绳驱分段联动机器人设计及控制研究}, + author={付亚南}, + school={哈尔滨工业大学}, + year={2018}, + pages={12--13}, + ADDRESS="深圳", +} + +@ARTICLE{zhai2015, + AUTHOR = "翟士民 and 刘荣 and 薛彤", + TITLE = "绳驱动连续型机械臂设计", + JOURNAL = "机械工程与自动化", + PAGES = "119--121", + YEAR="2015", + VOLUME = "2", + language ="zh", +} + +@article{yao2015, + title={蛇形臂机器人装配系统研究}, + author={姚艳彬 and 杜兆才 and 魏志强}, + journal={航空制造技术}, + volume={491}, + number={21}, + YEAR="2015", + pages={26--30}, + language="zh", +} + +@article{jones2006, + title={Kinematics for Multisection Continuum Robots}, + author={Jones, Bryan A and Walker, Ian D}, + journal={IEEE Transactions on Robotics}, + volume={22}, + number={1}, + pages={43--55}, + year={2006}, +} + +@INPROCEEDINGS{mcmahan2005, + title={Design and Implementation of a Multi-section Continuum Robot: Air-Octor}, + author={McMahan, William and Jones, Bryan A and Walker, Ian D}, + booktitle={IEEE/RSJ International Conference on Intelligent Robots and Systems}, + address={Shanghai, China}, + pages={2578--2585}, + year={2005}, +} + +@inproceedings{jones2004, + title={Design and Analysis of a Novel Pneumatic Manipulator}, + author={Jones, Bryan A and McMahan, William and Walker, Ian}, + booktitle={IFAC Symposium on Mechatronic Systems}, + address={Hanburg, German}, + pages={745--750}, + year={2004}, +} + +@inbook{Lin1992, + language ="zh", + AUTHOR = "林来兴", + TITLE = "空间控制技术", + PUBLISHER = "宇航出版社", + YEAR = "1992", + Pages = "25-42", + ADDRESS = "北京", +} + +@book{xin1994, + language ="zh", + title={信息技术与信息服务国际研讨会论文集}, + author={辛希孟 and 中国科学院文献信息中心 and 孟广均 and 信息学}, + year={1994}, + publisher={中国社会科学出版社}, + pages={45-49}, + address={北京}, + typeoflit={C}, +} + +@phdthesis{Chen1992, + language ="zh", + Author = {谌颖}, + Title = {空间最优交会控制理论与方法研究}, + ADDRESS = "哈尔滨", + School = {哈尔滨工业大学}, + Year = {1992}, + pages= {8-13}, +} + +@article{hitszthesis2020, + title={Dissertation Template for Harbin Institute of Technology, ShenZhen (HITSZ)}, + author={Jingxuan Yang}, + journal={Github}, + volume={001}, + number={0001}, + pages={000-999}, + year={2020}, +} diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.pdf b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.pdf new file mode 100644 index 0000000000..ff2c2d75a6 Binary files /dev/null and b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.pdf differ diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.tex b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.tex new file mode 100644 index 0000000000..2d856187b9 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer-example.tex @@ -0,0 +1,250 @@ +%%======================================================================= +% !Mode:: "TeX:UTF-8" +% !TEX program = PdfLaTeX +%%======================================================================= +% 模板名称:thubeamer +% 模板版本:V1.0.0 +% 模板作者:杨敬轩(Jingxuan Yang) +% 联系作者:yangjx20@mails.tsinghua.edu.cn & yanglatex2e@gmail.com +% 模板适用:清华大学风格 Beamer 模板 +% 模板编译:手动编译方法参看 README.md 或 thubeamer.pdf +% 编译 beamer 之前必须编译说明文档:make doc 或双击 makedoc.bat +% 编译说明文档同时分离出四个样式文件 *thubeamer.sty +% GNU make 工具:make beamer +% Windows 批处理脚本:双击 makebeamer.bat 自动编译 beamer +% 更多编译细节详见说明文档:thubeamer.pdf +% 更新时间:2021/07/07 +% 模板帮助:请**务必务必务必**阅读 thubeamer.pdf 说明文档,文档查看方法: +% 下载模板文件夹里就有,如果是从 CTAN 上安装更新本模板,则通过 +% cmd 命令行:texdoc thubeamer 查看文档 +% 推荐前往模板的 GitHub 仓库获取最新文件,地址: +% https://github.com/YangLaTeX/thubeamer +%%======================================================================= + +% 设置文档类别为 +% \documentclass[aspectratio=169]{beamer} % 设置长宽比为 16:9 +\documentclass{beamer} + +% 使用 主题 +% 模板选项如下 +% (a.1) smoothbars: 页面顶端单行显示目录,默认选项 +\usetheme{thubeamer} + +% (a.2) sidebar: 页面左侧分栏显示目录 +% \usetheme[sidebar]{thubeamer} + +% (b) sectiontoc: 在每节(section)前显示目录,并高亮显示当前节,默认不显示 + +% (c) subsectiontoc: 在每小节(subsection)前显示目录,并高亮显示当前节和当前小节,默认不显示 + +% 图片存放路径 +\graphicspath{{figures/}} + +\include{macros} + +% 封面信息,方括号内容是显示在左侧边栏的内容(当选择 sidebar 主题时有效) +\title[报告标题]{报告标题\\[2mm] 课程答辩} +\author[杨敬轩]{学生:杨敬轩\\[5mm] 导师:XX 教授} +\institute[清华大学]{\small 清华大学} +\date{\small \vskip -10pt \today} + +% 开始写文章 +\begin{document} + +% 标题页 +\begin{frame} + \maketitle +\end{frame} + +% 目录页 +\section*{目录} +\frame{ + \frametitle{\secname} + \tableofcontents[hideallsubsections] +} + +\section{研究内容及进度} + +\subsection{课题主要研究内容} + +\begin{frame}{课题主要研究内容} + \begin{figure} + \includegraphics[width=0.4\linewidth]{thulogo} + \caption{课题主要研究内容} + \end{figure} +\end{frame} + +\subsection{进度介绍} + +\begin{frame}{进度介绍} + \begin{figure} + \includegraphics[width=0.4\linewidth]{thulogo} + \caption{进度介绍} + \end{figure} +\end{frame} + +\section{研究工作及成果} + +\begin{frame}{已完成的研究工作及成果} + \begin{block}{已完成的研究工作简介} + \begin{itemize} + \setlength{\itemsep}{6pt} + \item XXXX + \item XXXX + \item XXXX + \item XXXX + \item XXXX + \item XXXX + \end{itemize} + \end{block} +\end{frame} + +\subsection{研究工作一} + +\begin{frame}{研究工作一} + \begin{block}{无编号公式} + 无编号公式示例: + $$ + k:[-\pi,\pi] \rightarrow [0,1] + $$ + \end{block} +\end{frame} + +\subsection{研究工作二} + +\begin{frame}{研究工作二} + \begin{block}{有编号公式} + \begin{itemize} + \item 有编号公式示例:输入为图像 + \begin{equation} + \vx\in\reals^{C_{\text{in}}\times H\times W} + \end{equation} + 其中 $C_{\text{in}}$ 表示通道, $H$ 表示图像高度, $W$ 表示图像深度. + \end{itemize} + \end{block} +\end{frame} + +\subsection{研究工作三} + +\begin{frame}{研究工作三} + \begin{block}{表格} + 表格示例, 如表 \ref{tab:unique_values} 所示. + + \begin{table}[htbp] + \small + \centering + \caption{train.csv 每列非重复元素个数} + \label{tab:unique_values} + \begin{tabular}{lc} + \toprule + column & \# unique values \\ + \midrule + posting\_id & 34250 \\ + image & 32412 \\ + image\_phash & 28735 \\ + title & 33117 \\ + label\_group & 11014 \\ + \bottomrule + \end{tabular} + \end{table} + \end{block} +\end{frame} + +\subsection{研究工作四} + +\begin{frame}{研究工作四} + \begin{block}{并排图片} + 并排图片示例. + \end{block} + \begin{figure}[htbp] + \centering + \begin{minipage}[t]{0.48\textwidth} + \centering + \includegraphics[width=3cm]{thulogo.pdf} + \caption{并排图片1} + \label{fig:left_side} + \end{minipage} + \begin{minipage}[t]{0.48\textwidth} + \centering + \includegraphics[width=3cm]{thulogo.pdf} + \caption{并排图片2} + \label{fig:right_side} + \end{minipage} + \end{figure} +\end{frame} + +\section{后期工作与安排} + +\subsection{后期研究工作} + +\begin{frame}{后期研究工作} + \begin{block}{后期研究工作} + \begin{itemize} + \setlength{\itemsep}{6pt} + \item XXXX + \item XXXX + \item XXXX + \item XXXX + \end{itemize} + \end{block} +\end{frame} + +\subsection{进度安排} + +\begin{frame}{进度安排} + \begin{block}{进度安排} + \begin{itemize} + \setlength{\itemsep}{6pt} + \item XXXX\cite{liu2016} + \item XXXX\cite{ren2010} + \item XXXX\cite{Chen1992} + \item XXXX\cite{Gravagne2003} + \end{itemize} + \end{block} +\end{frame} + +\section{问题与解决方案} + +\begin{frame}{问题与解决方案} + \begin{block}{问题} + \begin{itemize} + \item XXXX + \end{itemize} + \end{block} + \begin{block}{对应解决方案} + \begin{itemize} + \item XXXX + \end{itemize} + \end{block} +\end{frame} + +\section{按时完成可能性} + +\begin{frame}{按时完成可能性} + \begin{block}{按时完成可能性} + \begin{itemize} + \setlength{\itemsep}{6pt} + \item XXXX\cite{xin1994} + \item XXXX\cite{zhai2015} + \item XXXX\cite{jones2004} + \item XXXX\cite{mcmahan2005} + \end{itemize} + \end{block} +\end{frame} + +\begin{frame}[allowframebreaks]{参考文献} + \bibliographystyle{thubeamer} + \bibliography{reference} +\end{frame} + +\begin{frame} + \begin{center} + {\Huge\calligra Thanks for your attention!} + \vspace{1cm} + + {\Huge Q \& A} + \end{center} +\end{frame} + +% 结束文档撰写 +\end{document} diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.bst b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.bst new file mode 100644 index 0000000000..b4e1d9ac61 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.bst @@ -0,0 +1,1978 @@ +%============================================================================= +% FileName: thubeamer.bst +% Author: 杨敬轩(Jingxuan Yang) +% Email: yanglatex2e@gmail.com +% Version: 1.0.0 +% Modified: 杨敬轩(Jingxuan Yang) +% History: Yanshuo Chu,胡海星 +% LastChange: 2021-07-07 16:59 +%============================================================================= + % +ENTRY % class Entry { +{ % public: + author % String author; + editor % String editor; + translator % String translator; + title % String title; + edition % String edition; + address % String address; + publisher % String publisher; + pages % String pages; + year % String year; + date % String date; + modifydate % String modifydate; + citedate % String citedate; + url % String url; + doi % String doi; + language % String language; + booktitle % String booktitle; + journal % String journal; + chapter % String chapter; + series % String series; + volume % String volume; + number % String number; + version % String version; + month % String month; + school % String school; + institution % String institution; + organization % String organization; + type % String type; + howpublished % String howpublished; + eid % String eid; + key % String key; + country % String country; + patentid % String patentid; + media % String media; +} { % // declare integer variables + required % int required; // withther the bibfield is required +} { % // declare String variables + label % String label; // label for the entry + mark % String mark; // mark for the entry + % // there is ahidden entry variable sort.key$ + % String sort_key; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +INTEGERS { % // declare global int variables + entry.count % static int entry_count; // number of entries + longest.label.width % static int longest_label_width; // width of the longest label + i % static int i; + j % static int j; + k % static int k; +} % + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +STRINGS { % // declare global String variables + longest.label % static String longest_label; // the longest label + s % static String s; + t % static String t; +} % + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% define global static constants +FUNCTION {true} {#1} +FUNCTION {false} {#0} +FUNCTION {debug.enabled} {true} +FUNCTION {cap.volume.en} {"Vol~"} +FUNCTION {cap.volume.zh} {"卷"} +FUNCTION {cap.edition.en} {"~ed"} +FUNCTION {cap.edition.zh} {"版"} +FUNCTION {cap.anonymous.en} {"Anon"} +FUNCTION {cap.anonymous.zh} {"佚名"} +FUNCTION {cap.no.address.en} {"[S.l.]"} +FUNCTION {cap.no.address.zh} {"[出版地不详]"} +FUNCTION {cap.no.publisher.en} {"[s.n.]"} +FUNCTION {cap.no.publisher.zh} {"[出版者不详]"} +FUNCTION {cap.et.al.en} {", et~al"} +FUNCTION {cap.et.al.zh} {", 等"} +FUNCTION {cap.translate.en} {"~trans"} +FUNCTION {cap.translate.zh} {"译"} +FUNCTION {cap.doi.url} {"http://dx.doi.org/"} +FUNCTION {cap.st.en} {"st"} +FUNCTION {cap.nd.en} {"nd"} +FUNCTION {cap.rd.en} {"rd"} +FUNCTION {cap.th.en} {"th"} + +FUNCTION {cap.space} {" "} +FUNCTION {cap.period} {"\@. "} +FUNCTION {cap.comma} {"\@, "} +FUNCTION {cap.colon} {"\thinspace{}\textnormal{: }"} +FUNCTION {cap.double.slash} {" //\thinspace{}"} +FUNCTION {cap.dash} {"\textnormal{-}"} + +% Predefined latex command used to format the style of bibitems +FUNCTION {env.bibbegin} { "\begin{thebibliography}" } +FUNCTION {env.bibend} { "\end{thebibliography}" } +FUNCTION {cmd.bibauthor} { "\providecommand{\bibauthor}[1]{#1}" } +FUNCTION {cmd.bibeditor} { "\providecommand{\bibeditor}[1]{#1}" } +FUNCTION {cmd.bibtranslator} { "\providecommand{\bibtranslator}[1]{#1}" } +FUNCTION {cmd.bibtitle} { "\providecommand{\bibtitle}[1]{#1}" } +FUNCTION {cmd.bibbooktitle} { "\providecommand{\bibbooktitle}[1]{#1}" } +FUNCTION {cmd.bibjournal} { "\providecommand{\bibjournal}[1]{#1}" } +FUNCTION {cmd.bibmark} { "\providecommand{\bibmark}[1]{\mbox{#1}}" } +FUNCTION {cmd.bibcountry} { "\providecommand{\bibcountry}[1]{#1}" } +FUNCTION {cmd.bibpatentid} { "\providecommand{\bibpatentid}[1]{#1}" } +FUNCTION {cmd.bibedition} { "\providecommand{\bibedition}[1]{#1}" } +FUNCTION {cmd.biborganization} { "\providecommand{\biborganization}[1]{#1}" } +FUNCTION {cmd.bibaddress} { "\providecommand{\bibaddress}[1]{#1}" } +FUNCTION {cmd.bibpublisher} { "\providecommand{\bibpublisher}[1]{#1}" } +FUNCTION {cmd.bibinstitution} { "\providecommand{\bibinstitution}[1]{#1}" } +FUNCTION {cmd.bibschool} { "\providecommand{\bibschool}[1]{#1}" } +FUNCTION {cmd.bibvolume} { "\providecommand{\bibvolume}[1]{#1}" } +FUNCTION {cmd.bibnumber} { "\providecommand{\bibnumber}[1]{#1}" } +FUNCTION {cmd.bibversion} { "\providecommand{\bibversion}[1]{#1}" } +FUNCTION {cmd.bibpages} { "\providecommand{\bibpages}[1]{#1}" } +FUNCTION {cmd.bibmodifydate} { "\providecommand{\bibmodifydate}[1]{#1}" } +FUNCTION {cmd.bibcitedate} { "\providecommand{\bibcitedate}[1]{#1}" } +FUNCTION {cmd.bibyear} { "\providecommand{\bibyear}[1]{#1}" } +FUNCTION {cmd.bibdate} { "\providecommand{\bibdate}[1]{#1}" } +FUNCTION {cmd.biburl} { "\providecommand{\biburl}[1]{\newline\url{#1}}" } + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {log.str} { % void Entry::log_str(String value, String message) + debug.enabled { % if (debug_enabled == 1) { + "DEBUG: " swap$ * " - '" * % message = "DEBUG: " + message + " - '"; + swap$ * % message = message + value; + "'" * % message = message + "'"; + top$ % log(message); + } { % } else { + pop$ pop$ % return; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {log.int} { % int Entry::log_int(int value, String message) + debug.enabled { % if (debug_enabled == 1) { + "DEBUG: " swap$ * " - " * % message = "DEBUG: " + message + " - "; + swap$ int.to.str$ * % message = message + int_to_str(value); + top$ % log(message); + } { % } else { + pop$ pop$ % return; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {not} { % int Entry::not(int x) { + { % if (x == 1) { + false % return false; + } { % } else { + true % return true; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {and} { % int Entry::and(int x, int y) { + { % if (y == 1) { + skip$ % return x; + } { % } else { + pop$ false % return false; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {or} { % int Entry::or(int x, int y) { + { % if (y == 1) { + pop$ true % return true; + } { % } else { + skip$ % return x; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // calculate the length in characters of a string + % // We need this function since text.length$ is NOT + % // the length in characters. +INTEGERS {length.i} % static int length_i; +FUNCTION {length} { % int Entry::length(String str) { + duplicate$ empty$ { % if (empty(str)) { + pop$ #0 % return 0; + } { % } else { + #1 'length.i := % length_i = 1; + false % int stop = false; + {not} { % while (! stop) { + duplicate$ length.i #1 substring$ % String tmp = substring(str, length_i, 1); + "" = { % if (tmp == "") { + true % stop = true; + } { % } else { + length.i #1 + 'length.i := % length_i = length_i + 1; + false % stop = false; + } if$ % } + } while$ % } + pop$ length.i #1 - % return length_i - 1; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {is.digit} { % int Entry::is_digit(String ch) { + chr.to.int$ % int ascii = chr_to_int(ch); + duplicate$ "0" chr.to.int$ < { % if (ascii < chr_to_int("0")) { + pop$ false % return false; + } { % } else { + "9" chr.to.int$ > { % if (ascii > chr_to_int("9")) { + false % return false; + } { % } else { + true % return true; + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // test if str is a number +FUNCTION {is.number} { % int Entry::is_number(String str) { + duplicate$ empty$ not swap$ % int result = (! empty(str)); + { duplicate$ empty$ not} { % while (! empty(str)) { + duplicate$ #1 #1 substring$ is.digit { % if (is_digit(substring(str, 1, 1))) { + #2 global.max$ substring$ % str = substring(str, 2, global_max); + } { % } else { + pop$ pop$ false % result = false; + "" % str = ""; + } if$ % } + } while$ % } + pop$ % return result; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // extract the number prefix of str +FUNCTION {extract.number} { % String Entry::extract_number(String str) { + duplicate$ % String suffix = str; + duplicate$ length swap$ % int n = length(str); + duplicate$ empty$ % int stop = empty(suffix); + { not } { % while (! stop) { + duplicate$ #1 #1 substring$ is.digit { % if (is_digit(substring(suffix, 1, 1))) { + #2 global.max$ substring$ % suffix = substring(suffix, 2, global_max); + duplicate$ empty$ % stop = empty(suffix); + } { % } else { + true % stop = true; + } if$ % } + } while$ % } + length - % int n = n - length(suffix); + #1 swap$ substring$ % return substring(str, 1, n); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {get.last.chr} { % String Entry::get_last_chr(String str) { + duplicate$ length % int n = length(str); + duplicate$ #0 = { % if (n == 0) { + pop$ % return str; + } { % } else { + #1 substring$ % return substring(str, n, 1); + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {get.ordinal.suffix.en} { % String Entry::get_ordinal_suffix_en(String ch) { + duplicate$ "1" = { % if (num == "1") { + pop$ cap.st.en % return cap_st_en; + } { % } else { + duplicate$ "2" = { % if (num == "2") { + pop$ cap.nd.en % return cap_nd_en; + } { % } else { + duplicate$ "3" = { % if (num == "3") { + pop$ cap.rd.en % return cap_rd_en; + } { % } else { + pop$ cap.th.en % return cap_th_en; + } if$ % } + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {num.to.ordinal.en} { % String Entry::num_to_ordinal_en(String num) { + duplicate$ empty$ { % if (empty(num)) { + skip$ % return num; + } { % } else { + duplicate$ get.last.chr % String ch = get_last_chr(num); + get.ordinal.suffix.en % String str = get_ordinal_suffix_en(ch); + * % reutrn num + str; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +STRINGS {remove.dots.result} % static String remove_dots_result; + % +FUNCTION {remove.dots} { % String Entry::remove_dots(String str) { + "" 'remove.dots.result := % remove_dots_result = ""; + { duplicate$ empty$ not } { % while (! empty(str)) { + duplicate$ #1 #2 substring$ % String tmp = substring(str, 1, 2); + "\." = { % if (tmp == "\.") { + #3 global.max$ substring$ % str = substring(str, 3, global_max); + } { % } else { + duplicate$ #1 #1 substring$ % tmp = substring(str, 1, 1); + duplicate$ "." = { % if (tmp == ".") { + pop$ #2 global.max$ substring$ % str = substring(str, 2, global_max); + } { % } else { + remove.dots.result swap$ * % tmp = remove_dots_result + tmp; + 'remove.dots.result := % remove_dots_result = tmp; + #2 global.max$ substring$ % str = substring(str, 2, global_max); + } if$ % } + } if$ % } + } while$ % } + pop$ remove.dots.result % return remove_dots_result; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {add.brace} { % String Entry::add_brace(String str) { + "{" swap$ * "}" * % return "{" + str + "}"; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {add.bracket} { % String Entry::bracket(String str) { + "(" swap$ * ")" * % return "(" + str + ")"; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {add.squarebracket} { % String Entry::add_squarebracket(String str) { + "[" swap$ * "]" * % return "[" + str + "]"; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {add.textit} { % String Entry::add_textit(String str) { + "\textit{" swap$ * "}" * % return "\textit{" + str + "}"; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {add.textbf} { % String Entry::add_textbf(String str) { + "\textbf{" swap$ * "}" * % return "\textbf{" + str + "}"; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // test if str contains a dash '-' +FUNCTION {contain.dash} { % int Entry::contain_dash(String str) { + false swap$ % int result = false; + { duplicate$ empty$ not} { % while (! empty(str)) { + duplicate$ #1 #1 substring$ "-" = { % if (substring(str, 1, 1) == "-") { + pop$ pop$ true % result = true; + "" % str = ""; + } { % } else { + #2 global.max$ substring$ % str = substring(str, 2, global_max); + } if$ % } + } while$ % } + pop$ % return result; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // extract the substring before the first '-' + % // returns the string itself if no '-' +FUNCTION {extract.before.first.dash} { % String Entry::extract_before_first_dash(String str) { + duplicate$ % String suffix = str; + duplicate$ length swap$ % int n = length(str); + duplicate$ empty$ % int stop = empty(suffix); + { not } { % while (! stop) { + duplicate$ #1 #1 substring$ "-" = { % if (substring(suffix, 1, 1) == "-") { + true % stop = true; + } { % } else {4r + #2 global.max$ substring$ % suffix = substring(suffix, 2, global_max); + duplicate$ empty$ % stop = empty(suffix); + } if$ % } + } while$ % } + length - % int n = n - length(suffix); + #1 swap$ substring$ % return substring(str, 1, n); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // extract the substring after the first '-' + % // returns the string itself if no '-' +FUNCTION {extract.after.first.dash} { % String Entry::extract_after_first_dash(String str) { + duplicate$ % String suffix = str; + duplicate$ empty$ % int stop = empty(suffix); + { not } { % while (! stop) { + duplicate$ #1 #1 substring$ "-" = { % if (substring(suffix, 1, 1) == "-") { + true % stop = true; + } { % } else {4r + #2 global.max$ substring$ % suffix = substring(suffix, 2, global_max); + duplicate$ empty$ % stop = empty(suffix); + } if$ % } + } while$ % } + duplicate$ empty$ { % if (empty(suffix)) { + pop$ % return str; + } { % } else { + swap$ pop$ #2 global.max$ substring$ % return substring(suffix, 2, global_max); + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // extract the substring after the last '-' + % // returns the empty string if no '-' +FUNCTION {extract.after.last.dash} { % String Entry::extract_after_last_dash(String str) { + duplicate$ contain.dash not { % if (! contain_dash(str)) { + pop$ "" % return ""; + } { % } else { + {duplicate$ contain.dash} { % while (contain_dash(str)) { + extract.after.first.dash % str = extract_after_first_dash(str); + } while$ % } + % return str; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {trim.start} { % String Entry::trim_start(String str) { + {duplicate$ #1 #1 substring$ " " =} { % while (substring(str, 1, 1) == " ") { + #2 global.max$ substring$ % str = substring(str, 2, global_max); + } while$ % } + % return str; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {trim.end} { % String Entry::trim_end(String str) { + {duplicate$ get.last.chr " " =} { % while (get_last_chr(str) == " ") { + duplicate$ length #1 - % int n = length(str) - 1; + #1 swap$ substring$ % str = substring(str, 1, n); + } while$ % } + % return str; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {trim} { % String Entry::trim(String str) { + trim.start % str = trim_start(str); + trim.end % return trim_end(str); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {start.bibitem} { % void Entry::start_bibitem() { + newline$ % writeln(); + "\bibitem{" cite$ * "}" * write$ % write("\bibitem{" + this.cite + "}"); + newline$ % writeln(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {end.bibitem} { % void Entry::end_bibitem() { + cap.period write$ % write(cap_period); + newline$ % writeln(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {is.in.chinese} { % int Entry::is_in_chinese() { + language empty$ { % if (empty(this.language)) { + false % return false; + } { % } else { + language "zh" = { % if (this.language == "zh") { + true % return true; + } { % } else { + false % return false; + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {is.online} { % int Entry::is_online() { + url empty$ not { % if (! empty(this.url)) { + true % return true; + } { % } else { + doi empty$ not { % if (! empty(this.doi)) { + true % return true; + } { % } else { + false % return false; + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {set.mark} { % void Entry::set_mark(String mark) { + 'mark := % this.mark = mark; + is.online { % if (is_online()) { + mark "/OL" * 'mark := % this.mark = this.mark + "/OL"; + } { % } else { + media empty$ not { % if (! empty(this.media)) { + mark "/" * media * 'mark := % this.mark = this.mark + "/" + this.media; + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.volume} { % String Entry::cap_volume() { + is.in.chinese { % if (is_in_chinese()) { + cap.volume.zh % return cap_volume_zh; + } { % } else { + cap.volume.en % return cap_volume_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.edition} { % String Entry::cap_edition() { + is.in.chinese { % if (is_in_chinese()) { + cap.edition.zh % return cap_edition_zh; + } { % } else { + cap.edition.en % return cap_edition_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.anonymous} { % String Entry::cap_anonymous() { + is.in.chinese { % if (is_in_chinese()) { + cap.anonymous.zh % return cap_anonymous_zh; + } { % } else { + cap.anonymous.en % return cap_anonymous_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.no.address} { % String Entry::cap_no_address() { + is.in.chinese { % if (is_in_chinese()) { + cap.no.address.zh % return cap_no_address_zh; + } { % } else { + cap.no.address.en % return cap_no_address_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.no.publisher} { % String Entry::cap_no_publisher() { + is.in.chinese { % if (is_in_chinese()) { + cap.no.publisher.zh % return cap_no_publisher_zh; + } { % } else { + cap.no.publisher.en % return cap_no_publisher_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.et.al} { % String Entry::cap_et_al() { + is.in.chinese { % if (is_in_chinese()) { + cap.et.al.zh % return cap_et_al_zh; + } { % } else { + cap.et.al.en % return cap_et_al_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {cap.translate} { % String Entry::cap_translate() { + is.in.chinese { % if (is_in_chinese()) { + cap.translate.zh % return cap_translate_zh; + } { % } else { + cap.translate.en % return cap_translate_en; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.bibinfo} { % String Entry::format_bibinfo(String info, String type) { + swap$ add.brace swap$ % info = add_brace(info); + "\bib" swap$ * swap$ * % return "\bib" + type + info; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +INTEGERS { nameindex namecount } % static int nameindex, namecount; +STRINGS { namelist nameformat } % static String namelist, nameformat; +STRINGS { firstname lastname jrname vonname} % static String firstname, lastname, jrname, vonname; + % +FUNCTION {format.names} { % String Entry::format_names(String names) { + 'namelist := % namelist = names; + namelist num.names$ 'namecount := % namecount = num_names(namelist); + "" % String result = ""; + #0 'nameindex := % nameindex = 0; + {nameindex namecount < nameindex #3 < and} { % while ((nameindex < namecount) && (nameindex < 3)) { + nameindex #1 + 'nameindex := % nameindex = nameindex + 1; + nameindex #1 > { % if (nameindex > 1) { + cap.comma * % result = result + cap_comma; + } 'skip$ if$ % } + namelist nameindex "{vv}" format.name$ % String tmp = format_name(namelist, nameindex, "{vv}"); + 'vonname := % vonname = tmp; + namelist nameindex "{jj}" format.name$ % tmp = format_name(namelist, nameindex, "{jj}"); + remove.dots 'jrname := % jrname = remove_dots(tmp); + namelist nameindex "{f}" format.name$ % tmp = format_name(namelist, nameindex, "{f}"); + remove.dots % tmp = remove_dots(tmp); + 'firstname := % firstname = change_case(tmp, "u"); + namelist nameindex "{ll}" format.name$ % tmp = format_name(namelist, nameindex, "{ll}"); + 'lastname := % lastname = change_case(tmp, "u"); + jrname empty$ not { % if (! empty(jrname)) { + jrname * " " * % result = result + jrname + " " + } 'skip$ if$ % } + vonname empty$ not { % if (! empty(vonname)) { + vonname * " " * % result = result + vonname + " " + } 'skip$ if$ % } + lastname empty$ not { % if (! empty(lastname)) { + lastname * " " * % result = result + lastname + " " + } 'skip$ if$ % } + firstname empty$ not { % if (! empty(firstname)) { + firstname * " " * % result = result + firstname + " " + } 'skip$ if$ % } + trim.end % result = trim_end(result); + } while$ % } + nameindex namecount < { % if (nameindex < namecount) { + cap.et.al * % result = result + cap_et_al(); + } 'skip$ if$ % } +} % } + % + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // format English names +FUNCTION {format.names.en} { % String Entry::format_names_en(String names) { + format.names % format_names(names); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % // format Chinese names +FUNCTION {format.names.zh} { % String Entry::format_names_zh(String names) { + format.names % format_names(names); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.author} { % String Emtry::format_author(String authors) { + is.in.chinese { % if (is_in_chinese) { + format.names.zh % authors = format_names_zh(authors); + } { % } else { + format.names.en % authors = format_names_en(authors); + } if$ % } + "author" format.bibinfo % return format_bibinfo(authors, "author"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.editor} { % String Emtry::format_author(String editors) { + is.in.chinese { % if (is_in_chinese) { + format.names.zh % editors = format_names_zh(editors); + } { % } else { + format.names.en % editors = format_names_en(editors); + } if$ % } + "editor" format.bibinfo % return format_bibinfo(editors, "editor"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.translator} { % String Emtry::format_translator(String translators) { + is.in.chinese { % if (is_in_chinese) { + duplicate$ % String names = translators; + format.names.zh % translators = format_names_zh(translators); + swap$ num.names$ #3 > { % if (num_names(names) > 3) { + cap.translate.zh * % translators = translators + cap_translate_zh; + } { % } else { + cap.comma * cap.translate.zh * % translators = translators + cap_comma + cap_translate_zh; + } if$ % } + } { % } else { + duplicate$ % String names = translators; + format.names.en % translators = format_names_en(translators); + swap$ num.names$ #3 > { % if (num_names(names) > 3) { + cap.translate.en * % translators = translators + cap_translate_en; + } { % } else { + cap.comma * cap.translate.en * % translators = translators + cap_comma + cap_translate_en; + } if$ % } + } if$ % } + "translator" format.bibinfo % return format_bibinfo(translator, "translator"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.title} { % String Emtry::format_title(String title) { + "title" format.bibinfo % return format_bibinfo(title, "title"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.booktitle} { % String Emtry::format_booktitle(String booktitle) { + "booktitle" format.bibinfo % return format_bibinfo(booktitle, "booktitle"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.mark} { % String Emtry::format_mark(String mark) { + "[" swap$ * "]" * % mark = "[" + mark + "]"; + "mark" format.bibinfo % return format_bibinfo(mark, "mark"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.country} { % String Emtry::format_country(String country) { + "country" format.bibinfo % return format_bibinfo(country, "country"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.patentid} { % String Emtry::format_patentid(String patentid) { + "patentid" format.bibinfo % return format_bibinfo(patentid, "patentid"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.edition} { % String Emtry::format_edition(String edition) { + duplicate$ is.number { % if (is_number(edition)) { + is.in.chinese { % if (is_in_chinese()) { + cap.edition.zh * % edition = edition + cap_edition_zh; + } { % } else { + num.to.ordinal.en cap.edition.en * % edition = num_to_ordinal_en(edition) + cap_edition_en; + } if$ % } + } 'skip$ if$ % } + % // use a \mbox{} to prevent line break within edition + "\mbox{" swap$ * "}" * % edition = "\mbox{" + edition + "}"; + "edition" format.bibinfo % return format_bibinfo(edition, "edition"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.organization} { % String Emtry::format_organization(String organization) { + "organization" format.bibinfo % return format_bibinfo(organization, "organization"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.address} { % String Emtry::format_address(String address) { + "address" format.bibinfo % return format_bibinfo(address, "address"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.publisher} { % String Emtry::format_publisher(String publisher) { + "publisher" format.bibinfo % return format_bibinfo(publisher, "publisher"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.institution} { % String Emtry::format_institution(String institution) { + "institution" format.bibinfo % return format_bibinfo(institution, "institution"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.school} { % String Emtry::format_school(String school) { + "school" format.bibinfo % return format_bibinfo(school, "school"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.year} { % String Emtry::format_year(String year) { + "year" format.bibinfo % return format_bibinfo(year, "year"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.date} { % String Emtry::format_date(String date) { + "date" format.bibinfo % return format_bibinfo(date, "date"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.journal} { % String Emtry::format_journal(String journal) { + "journal" format.bibinfo % return format_bibinfo(journal, "journal"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.volume} { % String Emtry::format_volume(String volume) { + "volume" format.bibinfo % return format_bibinfo(volume, "volume"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.number} { % String Emtry::format_number(String number) { + add.bracket % number = add_bracket(number); + "number" format.bibinfo % return format_bibinfo(number, "number"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.report.number} { % String Emtry::format_report_number(String number) { + "number" format.bibinfo % return format_bibinfo(number, "number"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.version} { % String Emtry::format_version(String version) { + "version" format.bibinfo % return format_bibinfo(version, "version"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.pages} { % String Emtry::format_pages(String pages) { + "pages" format.bibinfo % return format_bibinfo(pages, "pages"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.modifydate} { % String Emtry::format_modifydate(String modifydate) { + add.bracket % modifydate = add_bracket(modifydate); + "modifydate" format.bibinfo % return format_bibinfo(modifydate, "modifydate"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {format.citedate} { % String Emtry::format_citedate(String citedate) { + add.squarebracket % citedate = add_squarebracket(citedate); + "citedate" format.bibinfo % return format_bibinfo(citedate, "citedate"); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % // NOTE: do not use the format_bibinfo() for URL, + % // since if the URL contains special symbols such + % // as '%', the \biburl{} will be broken. +FUNCTION {format.url} { % String Emtry::format_url(String url) { + "\url{" swap$ * "}" * % return "\url{" + url + "}"; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {get.full.title} { % String Entry::get_full_title() { + series empty$ { % if (empty(this.series)) { + volume empty$ { % if (empty(this.volume)) { + title % return this.title; + } { % } else { + title cap.colon * cap.volume * volume * % return this.title + cap_colon + cap_volume() + this.volume; + } if$ % } + } { % } else { + volume empty$ { % if (empty(this.volume)) { + series cap.colon * title * % return this.series + cap_colon + this.title; + } { % } else { + series cap.comma * cap.volume * volume * % String str = this.series + cap_comma + cal_volume() + this.volume; + cap.colon * title * % return str + cap_colon + this.title; + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {get.full.booktitle} { % String Entry::get_full_booktitle() { + series empty$ { % if (empty(this.series)) { + volume empty$ { % if (empty(this.volume)) { + booktitle % return this.booktitle; + } { % } else { + booktitle cap.colon * cap.volume * volume * % return this.booktitle + cap_colon + cap_volume() + this.volume; + } if$ % } + } { % } else { + volume empty$ { % if (empty(this.volume)) { + series cap.colon * booktitle * % return this.series + cap_colon + this.booktitle; + } { % } else { + series cap.comma * cap.volume * volume * % String str = this.series + cap_comma + cal_volume() + this.volume; + cap.colon * booktitle * % return str + cap_colon + this.booktitle; + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {get.pages} { % String Entry::get_pages() { + pages contain.dash { % if (contain_dash(this.pages)) { + pages extract.before.first.dash % String p1 = extract_before_first_dash(this.pages); + pages extract.after.last.dash % String p2 = extract_after_last_dash(this.pages); + cap.dash swap$ * * % return p1 + cap_dash + p2; + } { % } else { + pages % return this.pages; + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.author.or.editor} { % void Entry::output_author_or_editor(int required) { + 'required := % this.required = required; + author empty$ not { % if (! empty(this.author)) { + author format.author write$ % write(format_author(this.author)); + cap.period write$ % write(cap_period); + } { % } else { + editor empty$ not { % if (! empty(this.editor)) { + editor format.editor write$ % write(format_editor(this.editor)); + cap.period write$ % write(cap_period); + } { % } else { + required { % if (required == 1) { + "Require author/editor: " cite$ * warning$% warning("Require author/editor: " + this.cite); + cap.anonymous format.author write$ % write(format_author(cap_anonymous())); + cap.period write$ % write(cap_period); + } 'skip$ if$ % } + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.author} { % void Entry::output_author(int required) { + 'required := % this.required = required; + author empty$ not { % if (! empty(this.author)) { + author format.author write$ % write(format_author(this.author)); + cap.period write$ % write(cap_period); + } { % } else { + required { % if (required == 1) { + "Require author: " cite$ * warning$ % warning("Require author: " + this.cite); + cap.anonymous format.author write$ % write(format_author(cap_anonymous())); + cap.period write$ % write(cap_period); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.editor} { % void Entry::output_editor(int required) { + 'required := % this.required = required; + editor empty$ not { % if (! empty(this.editor)) { + editor format.editor write$ % write(format_editor(this.editor)); + cap.period write$ % write(cap_period); + } { % } else { + required { % if (required == 1) { + "Require editor: " cite$ * warning$ % warning("Require editor: " + this.cite); + cap.anonymous format.editor write$ % write(format_editor(cap_anonymous())); + cap.period write$ % write(cap_period); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.title} { % void Entry::output_title(int required) { + 'required := % this.required = required; + title empty$ not { % if (! empty(this.title)) { + title format.title write$ % write(format_title(this.title)); + } { % } else { + required { % if (required == 1) { + "Require title: " cite$ * warning$ % warning("Require title: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.series.volume.title} { % void Entry::output_series_volume_title(int required) { + 'required := % this.required = required; + title empty$ not { % if (! empty(this.title)) { + get.full.title format.booktitle write$ % write(format_booktitle(get_full_title())); + } { % } else { + required { % if (required == 1) { + "Require title: " cite$ * warning$ % warning("Require title: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.series.volume.booktitle} { % void Entry::output_series_volume_booktitle(int required) { + 'required := % this.required = required; + booktitle empty$ not { % if (! empty(this.booktitle)) { + get.full.booktitle format.booktitle write$ % write(format_booktitle(get_full_booktitle()); + } { % } else { + required { % if (required == 1) { + "Require booktitle: " cite$ * warning$ % warning("Require booktitle: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.journal} { % void Entry::output_journal(int required) { + 'required := % this.required = required; + journal empty$ not { % if (! empty(this.journal)) { + cap.period write$ % write(cap_period); + journal format.journal write$ % write(format_journal(this.journal)); + } { % } else { + required { % if (required == 1) { + "Require journal: " cite$ * warning$ % warning("Require journal: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.mark} { % void Entry::output_mark(int required) { + 'required := % this.required = required; + mark empty$ not { % if (! empty(this.mark)) { + mark format.mark write$ % write(format_mark(this.mark)); + } { % } else { + required { % if (required == 1) { + "Require mark: " cite$ * warning$ % warning("Require mark: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.translator} { % void Entry::output_translator(int required) { + 'required := % this.required = required; + translator empty$ not { % if (! empty(this.translator)) { + cap.period write$ % write(cap_period); + translator format.translator write$ % write(format_translator(this.translator)); + } { % } else { + required { % if (required == 1) { + "Require translator: " cite$ * warning$ % warning("Require translator: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.edition} { % void Entry::output_edition(int required) { + 'required := % this.required = required; + edition empty$ not { % if (! empty(this.edition)) { + cap.period write$ % write(cap_period); + edition format.edition write$ % write(format_edition(this.edition)); + } { % } else { + required { % if (required == 1) { + "Require edition: " cite$ * warning$ % warning("Require edition: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.address} { % void Entry::output_address(int required) { + 'required := % this.required = required; + address empty$ not { % if (! empty(this.address)) { + cap.period write$ % write(cap_period); + address format.address write$ % write(format_address(this.address)); + } { % } else { + required { % if (required == 1) { + "Require address: " cite$ * warning$ % warning("Require address: " + this.cite); + cap.period write$ % write(cap_period); + cap.no.address format.address write$ % write(format_address(cap_no_address())); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.inproaddress} { % void Entry::output_inproaddress(int required) { + 'required := % this.required = required; + address empty$ not { % if (! empty(this.address)) { + cap.comma write$ % write(cap_comma); + address format.address write$ % write(format_address(this.address)); + } { % } else { + required { % if (required == 1) { + "Require address: " cite$ * warning$ % warning("Require address: " + this.cite); + cap.comma write$ % write(cap_comma); + cap.no.address format.address write$ % write(format_address(cap_no_address())); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.publisher} { % void Entry::output_publisher(int required) { + 'required := % this.required = required; + publisher empty$ not { % if (! empty(this.publisher)) { + cap.colon write$ % write(cap_colon); + publisher format.publisher write$ % write(format_publisher(this.publisher)); + } { % } else { + required { % if (required == 1) { + "Require publisher: " cite$ * warning$ % warning("Require publisher: " + this.cite); + cap.colon write$ % write(cap_colon); + cap.no.publisher format.publisher write$ % write(format_publisher(cap_no_publisher())); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.publisher.no.address} { % void Entry::output_publisher_no_address(int required) { + 'required := % this.required = required; + publisher empty$ not { % if (! empty(this.publisher)) { + cap.period write$ % write(cap_period); + publisher format.publisher write$ % write(format_publisher(this.publisher)); + } { % } else { + required { % if (required == 1) { + "Require publisher: " cite$ * warning$ % warning("Require publisher: " + this.cite); + cap.period write$ % write(cap_period); + cap.no.publisher format.publisher write$ % write(format_publisher(cap_no_publisher())); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.school} { % void Entry::output_school(int required) { + 'required := % this.required = required; + school empty$ not { % if (! empty(this.school)) { + cap.colon write$ % write(cap_colon); + school format.school write$ % write(format_school(this.school)); + } { % } else { + required { % if (required == 1) { + "Require school: " cite$ * warning$ % warning("Require publisher: " + this.cite); + cap.colon write$ % write(cap_colon); + cap.no.publisher format.school write$ % write(format_school(cap_no_publisher())); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.institution} { % void Entry::output_institution(int required) { + 'required := % this.required = required; + institution empty$ not { % if (! empty(this.institution)) { + cap.colon write$ % write(cap_colon); + institution format.institution write$ % write(format_publisher(this.institution)); + } { % } else { + required { % if (required == 1) { + "Require institution: " cite$ * warning$ % warning("Require institution: " + this.cite); + cap.colon write$ % write(cap_colon); + cap.no.publisher format.institution write$ % write(format_institution(cap_no_publisher())); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.year} { % void Entry::output_year(int required) { + 'required := % this.required = required; + year empty$ not { % if (! empty(this.year)) { + year format.year write$ % write(format_year(this.year)); + } { % } else { + required { % if (required == 1) { + "Require year: " cite$ * warning$ % warning("Require year: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.pages} { % void Entry::output_pages(int required) { + 'required := % this.required = required; + pages empty$ not { % if (! empty(this.pages)) { + cap.colon write$ % write(cap_colon); + get.pages format.pages write$ % write(format_pages(get_pages())); + } { % } else { + required { % if (required == 1) { + "Require pages: " cite$ * warning$ % warning("Require pages: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.modifydate} { % void Entry::output_modifydate(int required) { + 'required := % this.required = required; + modifydate empty$ not { % if (! empty(this.modifydate)) { + cap.space write$ % write(cap_space); + modifydate format.modifydate write$ % write(format_modifydate(this.modifydate)); + } { % } else { + required { % if (required == 1) { + "Require modifydate: " cite$ * warning$ % warning("Require modifydate: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.citedate} { % void Entry::output_citedate(int required) { + 'required := % this.required = required; + citedate empty$ not { % if (! empty(this.citedate)) { + cap.space write$ % write(cap_space); + citedate format.citedate write$ % write(format_citedate(this.citedate)); + } { % } else { + required is.online or { % if ((required == 1) || (is_online())) { + "Require citedate: " cite$ * warning$ % warning("Require citedate: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.date} { % void Entry::output_date(int required) { + 'required := % this.required = required; + date empty$ not { % if (! empty(this.date)) { + date format.date write$ % write(format_date(this.date)); + } { % } else { + required { % if (required == 1) { + "Require date: " cite$ * warning$ % warning("Require date: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.volume} { % void Entry::output_volume(int required) { + 'required := % this.required = required; + volume empty$ not { % if (! empty(this.volume)) { + cap.comma write$ % write(cap_comma); + volume format.volume write$ % write(format_volume(this.volume)); + } { % } else { + required { % if (required == 1) { + "Require volume: " cite$ * warning$ % warning("Require volume: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.number} { % void Entry::output_number(int required) { + 'required := % this.required = required; + number empty$ not { % if (! empty(this.number)) { + number format.number write$ % write(format_number(this.number)); + } { % } else { + required { % if (required == 1) { + "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.report.number} { % void Entry::output_report_number(int required) { + 'required := % this.required = required; + number empty$ not { % if (! empty(this.number)) { + cap.colon write$ % write(cap_colon); + number format.report.number write$ % write(format_report_number(this.number)); + } { % } else { + required { % if (required == 1) { + "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.country} { % void Entry::output_country(int required) { + 'required := % this.required = required; + country empty$ not { % if (! empty(this.country)) { + cap.colon write$ % write(cap_colon); + country format.country write$ % write(format_country(this.country)); + } { % } else { + required { % if (required == 1) { + "Require country: " cite$ * warning$ % warning("Require country: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.patentid} { % void Entry::output_patentid(int required) { + 'required := % this.required = required; + patentid empty$ not { % if (! empty(this.patentid)) { + cap.comma write$ % write(cap_comma); + patentid format.patentid write$ % write(format_patentid(this.patentid)); + } { % } else { + required { % if (required == 1) { + "Require patentid: " cite$ * warning$ % warning("Require patentid: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.start.year} { % void Entry::output_start_year(int required) { + 'required := % this.required = required; + year empty$ not { % if (! empty(this.year)) { + year extract.before.first.dash % String str = extract_before_first_dash(this.year); + format.year write$ % write(format_year(str)); + } { % } else { + required { % if (required == 1) { + "Require year: " cite$ * warning$ % warning("Require year: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.start.volume} { % void Entry::output_start_volume(int required) { + 'required := % this.required = required; + volume empty$ not { % if (! empty(this.volume)) { + cap.comma write$ % write(cap_comma); + volume extract.before.first.dash % String str = extract_before_first_dash(this.volume); + format.volume write$ % write(format_volume(str)); + } { % } else { + required { % if (required == 1) { + "Require volume: " cite$ * warning$ % warning("Require volume: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.start.number} { % void Entry::output_start_number(int required) { + 'required := % this.required = required; + number empty$ not { % if (! empty(this.number)) { + number extract.before.first.dash % String str = extract_before_first_dash(this.number); + format.number write$ % write(format_number(str)); + } { % } else { + required { % if (required == 1) { + "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.end.year} { % void Entry::output_end_year(int required) { + 'required := % this.required = required; + year empty$ not { % if (! empty(this.year)) { + year extract.after.last.dash % String str = extract_after_last_dash(this.year); + format.year write$ % write(format_year(str)); + } { % } else { + required { % if (required == 1) { + "Require year: " cite$ * warning$ % warning("Require year: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.end.volume} { % void Entry::output_end_volume(int required) { + 'required := % this.required = required; + volume empty$ not { % if (! empty(this.volume)) { + cap.comma write$ % write(cap_comma); + volume extract.after.last.dash % String str = extract_after_last_dash(this.volume); + format.volume write$ % write(format_volume(str)); + } { % } else { + required { % if (required == 1) { + "Require volume: " cite$ * warning$ % warning("Require volume: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.end.number} { % void Entry::output_end_number(int required) { + 'required := % this.required = required; + number empty$ not { % if (! empty(this.number)) { + number extract.after.last.dash % String str = extract_after_last_dash(this.number); + format.number write$ % write(format_number(str)); + } { % } else { + required { % if (required == 1) { + "Require number: " cite$ * warning$ % warning("Require number: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.url.or.doi} { % void Entry::output_url_or_doi(int required) { + 'required := % this.required = required; + url empty$ not { % if (! empty(this.url)) { + cap.period write$ % write(cap_period); + url format.url write$ % write(format_url(this.url)); + } { % } else { + doi empty$ not { % if (! empty(this.doi)) { + cap.period write$ % write(cap_period); + cap.doi.url doi * format.url write$ % write(format_url(cap_doi_url + this.doi)); + } { % } else { + required { % if (required == 1) { + "Require URL or DOI: " cite$ * warning$ % warning("Require URL or DOI: " + this.cite); + } 'skip$ if$ % } + } if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.url} { % void Entry::output_url(int required) { + 'required := % this.required = required; + url empty$ not { % if (! empty(this.url)) { + cap.period write$ % write(cap_period); + url format.url write$ % write(format_url(this.url)); + } { % } else { + required { % if (required == 1) { + "Require URL: " cite$ * warning$ % warning("Require URL: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {output.version} { % void Entry::output_version(int required) { + 'required := % this.required = required; + version empty$ not { % if (! empty(this.version)) { + cap.period write$ % write(cap_period); + version format.version write$ % write(format_version(this.version)); + } { % } else { + required { % if (required == 1) { + "Require version: " cite$ * warning$ % warning("Require version: " + this.cite); + } 'skip$ if$ % } + } if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {book.impl} { % void Entry::book_impl() { + start.bibitem % start_bibitem(); + true output.author.or.editor % output_author_or_editor(true); + true output.series.volume.title % output_series_volume_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + false output.edition % output_edition(false); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {book} { % void Entry::book() { + "M" set.mark % set_mark("M"); + book.impl % book_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {collection} { % void Entry::collection() { + "G" set.mark % set_mark("G"); + book.impl % book_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {proceedings} { % void Entry::proceedings() { + "C" set.mark % set_mark("C"); + start.bibitem % start_bibitem(); + true output.editor % output_editor(true); + true output.series.volume.title % output_series_volume_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + false output.edition % output_edition(false); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {conference} { % void Entry::conference() { + proceedings % proceedings(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {thesis.impl} { % void Entry::thesis_impl() { + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + true output.address % output_address(true); + true output.school % output_school(true); + cap.comma write$ % write(cap_comma); + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {phdthesis} { % void Entry::phdthesis() { + "D" set.mark % set_mark("D"); + thesis.impl % thesis_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {masterthesis} { % void Entry::masterthesis() { + "D" set.mark % set_mark("D"); + thesis.impl % thesis_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {bachelorthesis} { % void Entry::bachelorthesis() { + "D" set.mark % set_mark("D"); + thesis.impl % thesis_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {techreport} { % void Entry::techreport() { + "R" set.mark % set_mark("R"); + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + false output.report.number % output_report_number(false); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + false output.edition % output_edition(false); + false output.version % output_version(false); + institution empty$ not { % if (! empty(this.institution)) { + true output.address % output_address(true); + true output.institution % output_institution(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {standard} { % void Entry::standard() { + "S" set.mark % set_mark("S"); + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + false output.edition % output_edition(false); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {reference} { % void Entry::reference() { + "K" set.mark % set_mark("K"); + start.bibitem % start_bibitem(); + false output.author.or.editor % output_author_or_editor(false); + true output.series.volume.title % output_series_volume_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + false output.edition % output_edition(false); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {manual} { % void Entry::manual() { + reference % reference(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {periodical.impl} { % void Entry::periodical_impl() { + start.bibitem % start_bibitem(); + false output.editor % output_editor(false); + true output.title % output_title(true); + true output.mark % output_mark(true); + cap.period write$ % write(cap_period); + true output.start.year % output_start_year(true); + false output.start.volume % output_start_volume(false); + false output.start.number % output_start_number(false); + cap.dash write$ % write(cap_dash); + year contain.dash { % if (contain_dash(this.year)) { + true output.end.year % output_end_year(true); + false output.end.volume % output_end_volume(false); + false output.end.number % output_end_number(false); + } 'skip$ if$ % } + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.start.year % output_start_year(true); + cap.dash write$ % write(cap_dash); + year contain.dash { % if (contain_dash(this.year)) { + true output.end.year % output_end_year(true); + } 'skip$ if$ % } + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {periodical} { % void Entry::periodical() { + "J" set.mark % set_mark("J"); + periodical.impl % periodical_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {newspaper} { % void Entry::newspaper() { + "N" set.mark % set_mark("N"); + periodical.impl % periodical_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {patent} { % void Entry::patent() { + "P" set.mark % set_mark("P"); + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.country % output_country(true); + true output.patentid % output_patentid(true); + true output.mark % output_mark(true); + cap.period write$ % write(cap_period); + true output.date % output_date(true); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {online} { % void Entry::online() { + "EB" set.mark % set_mark("EB"); + start.bibitem % start_bibitem(); + false output.author % output_author(false); + true output.title % output_title(true); + true output.mark % output_mark(true); + publisher empty$ not { % if (! empty(this.publisher)) { + address empty$ not { % if (! empty(this.address)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + true output.publisher.no.address % output_publisher_no_address(true); + cap.comma write$ % write(cap_comma); + } if$ % } + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.modifydate % output_modifydate(false); + true output.citedate % output_citedate(true); + true output.url % output_url(true); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {webpage} { % void Entry::online() { + online % online(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {program.impl} { % void Entry::program_impl() { + start.bibitem % start_bibitem(); + false output.author % output_author(false); + true output.title % output_title(true); + true output.mark % output_mark(true); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {program} { % void Entry::program() { + "CP" set.mark % set_mark("CP"); + program.impl % program_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {database} { % void Entry::database() { + "DB" set.mark % set_mark("DB"); + program.impl % program_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {unpublished} { % void Entry::unpublished() { + "H" set.mark % set_mark("H"); + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + cap.period write$ % write(cap_period); + true output.year % output_year(true); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {manuscript} { % void Entry::manuscript() { + unpublished % unpublished(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {inbook.impl} { % void Entry::inbook_impl() { + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + cap.double.slash write$ % write(cap_double_slash); + false output.editor % output_editor(false); + true output.series.volume.booktitle % output_series_volume_booktitle(true); + false output.edition % output_edition(false); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.address % output_address(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + cap.period write$ % write(cap_period); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {inproceedings.impl} { % void Entry::inproceedings_impl() { + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + false output.translator % output_translator(false); + cap.double.slash write$ % write(cap_double_slash); + false output.editor % output_editor(false); + true output.series.volume.booktitle % output_series_volume_booktitle(true); + false output.edition % output_edition(false); + publisher empty$ not { % if (! empty(this.publisher)) { + true output.inproaddress % output_inproaddress(true); + true output.publisher % output_publisher(true); + cap.comma write$ % write(cap_comma); + } { % } else { + true output.inproaddress % output_inproaddress(true); + cap.comma write$ % write(cap_comma); + } if$ % } + true output.year % output_year(true); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {inbook} { % void Entry::inbook() { + "M" set.mark % set_mark("M"); + inbook.impl % inbook_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {incollection} { % void Entry::incollection() { + "G" set.mark % set_mark("G"); + inbook.impl % inbook_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {inproceedings} { % void Entry::inproceedings() { + "C" set.mark % set_mark("C"); + inproceedings.impl % inproceedings_impl(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {article} { % void Entry::article() { + "J" set.mark % set_mark("J"); + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + true output.journal % output_journal(true); + cap.comma write$ % write(cap_comma); + true output.year % output_year(true); + false output.volume % output_volume(false); + false output.number % output_number(false); + false output.pages % output_pages(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {news} { % void Entry::news() { + "N" set.mark % set_mark("N"); + start.bibitem % start_bibitem(); + true output.author % output_author(true); + true output.title % output_title(true); + true output.mark % output_mark(true); + true output.journal % output_journal(true); + cap.comma write$ % write(cap_comma); + true output.date % output_date(true); + false output.number % output_number(false); + false output.citedate % output_citedate(false); + false output.url.or.doi % output_url_or_doi(false); + end.bibitem % end_bibitem(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {default.type} { % void Entry::default_type() { + "Unsupported entry type for " cite$ * warning$ % warning("Unsupported entry type for " + this.cite); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {longest.label.pass} { % void longest_label_pass(Entry entry) { + entry.count #1 + 'entry.count := % entry_count = entry_count + 1; + entry.count int.to.str$ 'label := % this.label = int_to_str(entry_count); + label width$ longest.label.width > { % if (width(this.label) > longest_label_width) { + label 'longest.label := % longest_label = this.label; + label width$ 'longest.label.width := % longest_label_width = width(this.label); + } 'skip$ if$ % } +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {write.style.commands} { % void write_style_commands() { + cmd.bibauthor write$ % write(cmd_bibauthor); + newline$ % writeln(); + cmd.bibeditor write$ % write(cmd_bibeditor); + newline$ % writeln(); + cmd.bibtranslator write$ % write(cmd_bibtranslator); + newline$ % writeln(); + cmd.bibtitle write$ % write(cmd_bibtitle); + newline$ % writeln(); + cmd.bibbooktitle write$ % write(cmd_bibbooktitle); + newline$ % writeln(); + cmd.bibjournal write$ % write(cmd_bibjournal); + newline$ % writeln(); + cmd.bibmark write$ % write(cmd_bibmark); + newline$ % writeln(); + cmd.bibcountry write$ % write(cmd_bibcountry); + newline$ % writeln(); + cmd.bibpatentid write$ % write(cmd_bibpatentid); + newline$ % writeln(); + cmd.bibedition write$ % write(cmd_bibedition); + newline$ % writeln(); + cmd.biborganization write$ % write(cmd_biborganization); + newline$ % writeln(); + cmd.bibaddress write$ % write(cmd_bibaddress); + newline$ % writeln(); + cmd.bibpublisher write$ % write(cmd_bibpublisher); + newline$ % writeln(); + cmd.bibinstitution write$ % write(cmd_bibinstitution); + newline$ % writeln(); + cmd.bibschool write$ % write(cmd_bibschool); + newline$ % writeln(); + cmd.bibvolume write$ % write(cmd_bibvolume); + newline$ % writeln(); + cmd.bibnumber write$ % write(cmd_bibnumber); + newline$ % writeln(); + cmd.bibversion write$ % write(cmd_bibversion); + newline$ % writeln(); + cmd.bibpages write$ % write(cmd_bibpages); + newline$ % writeln(); + cmd.bibmodifydate write$ % write(cmd_bibmodifydate); + newline$ % writeln(); + cmd.bibcitedate write$ % write(cmd_bibcitedate); + newline$ % writeln(); + cmd.bibyear write$ % write(cmd_bibyear); + newline$ % writeln(); + cmd.bibdate write$ % write(cmd_bibdate); + newline$ % writeln(); + cmd.biburl write$ % write(cmd_biburl); + newline$ % writeln(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {begin.bib} { % void begin_bib() { + preamble$ empty$ not { % if (! empty(premble)) { + preamble$ write$ % write(premeable); + newline$ % writeln(); + } 'skip$ if$ % } + env.bibbegin write$ % write(env_bibbegin); + "{" longest.label * "}" * write$ % write("{" + longest.label + "}"); + newline$ % writeln(); + write.style.commands % write_style_commands(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {end.bib} { % void end_bib() { + newline$ % writeln(); + env.bibend write$ % write(env_bibend); + newline$ % writeln(); +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % +FUNCTION {initialize} { % void initialize() { + #0 'entry.count := % entry_count = 0; + #0 'longest.label.width := % longest_label_width = 0; + "" 'longest.label := % longest_label = ""; +} % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % void main() { +READ % List entryList = read(".bib"); +EXECUTE {initialize} % initialize(); +ITERATE {longest.label.pass} % for (Entry entry : entryList) { + % longest_label_pass(entry); + % } +EXECUTE {begin.bib} % begin_bib(); +ITERATE {call.type$} % for (Entry entry : entryList) { + % switch (typeof(entry)) { + % case "book": + % entry.book(); + % break; + % case "article": + % entry.article(); + % break; + % . + % . + % . + % case "incollection": + % entry.incollection(); + % break; + % case "misc": + % entry.misc(); + % break; + % default: + % entry.default_type(); + % } + % } +EXECUTE {end.bib} % end_bib(); + % } + % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% End of file `GBT7714-2005.bst' diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.dtx b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.dtx new file mode 100644 index 0000000000..8cbdd0c505 --- /dev/null +++ b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.dtx @@ -0,0 +1,722 @@ +% \iffalse meta-comment +% !TeX program = XeLaTeX +% !TeX encoding = UTF-8 +% +% Copyright (C) 2019--2021 by Jingxuan Yang +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3c +% of this license or (at your option) any later version. +% The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3c or later is part of all distributions of LaTeX +% version 2008/05/04 or later. + +%<*internal> +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +% +%<*install> + +\input docstrip +\keepsilent +\askforoverwritefalse +\preamble + +This is a generated file. + +Copyright (C) 2019--\the\year by Jingxuan Yang + +This file may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3c +of this license or (at your option) any later version. +The latest version of this license is in: + +http://www.latex-project.org/lppl.txt + +and version 1.3c or later is part of all distributions of LaTeX +version 2008/05/04 or later. + +To produce the documentation run the original source files ending with `.dtx' +through LaTeX. + +\endpreamble +\postamble + +This package consists of the file thubeamer.dtx, + and the derived files thubeamer.pdf, + beamerthemethubeamer.sty, + beamercolorthemethubeamer.sty, + beamerinnerthemethubeamer.sty, + beamerouterthemethubeamer.sty. + +\endpostamble + +\usedir{tex/latex/thubeamer} +\generate + { + \file{dtx-style.sty}{\from{\jobname.dtx}{dtx-style}} + \file{beamerthemethubeamer.sty}{\from{\jobname.dtx}{thubeamer}} + \file{beamercolorthemethubeamer.sty}{\from{\jobname.dtx}{thucolorstyle}} + \file{beamerinnerthemethubeamer.sty}{\from{\jobname.dtx}{thuinnerstyle}} + \file{beamerouterthemethubeamer.sty}{\from{\jobname.dtx}{thuouterstyle}} + } + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* The recommended directory is TEXMF/tex/latex/thubeamer} +\Msg{*} +\Msg{* \space\space dtx-style.sty} +\Msg{* \space\space beamerthemethubeamer.sty} +\Msg{* \space\space beamercolorthemethubeamer.sty} +\Msg{* \space\space beamerinnerthemethubeamer.sty} +\Msg{* \space\space beamerouterthemethubeamer.sty} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{***********************************************************} + +% +%\endbatchfile +%<*internal> + +\usedir{tex/latex/thubeamer} +\generate + { + \file{\jobname.ins}{\from{\jobname.dtx}{install}} + } +\nopreamble\nopostamble + +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup +\fi +% +% +%\NeedsTeXFormat{LaTeX2e} +%\ProvidesPackage{beamerthemethubeamer} +%\ProvidesPackage{beamercolorthemethubeamer} +%\ProvidesPackage{beamerinnerthemethubeamer} +%\ProvidesPackage{beamerouterthemethubeamer} +%[2021/07/07 v1.0.0 A Beamer Theme for Tsinghua University (THU)] +% +%<*driver> +\ProvidesFile{thubeamer.dtx}[2021/07/07 v1.0.0 A Beamer Theme for Tsinghua University (THU)] +\documentclass{ltxdoc} +\usepackage{dtx-style} + +\EnableCrossrefs +\CodelineIndex +\RecordChanges + +\begin{document} + \DocInput{\jobname.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{0} +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \GetFileInfo{\jobname.dtx} +% +% \changes{v1.0.0}{2021/07/07}{Initially design thubeamer} +% +% \DoNotIndex{\begin,\end,\begingroup,\endgroup} +% \DoNotIndex{\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi,\-} +% \DoNotIndex{\let,\def,\xdef,\newcommand,\renewcommand} +% \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect} +% \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize} +% \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny} +% \DoNotIndex{\normalfont,\bfseries,\slshape,\interlinepenalty} +% \DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad} +% \DoNotIndex{\centering,\raggedright} +% \DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize} +% \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne} +% \DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass} +% \DoNotIndex{\AtBeginDocument,\AtEndDocument} +% +% \IndexPrologue{\section*{索~~~~引}} +% \GlossaryPrologue{\section*{修改记录}} +% +% \definecolor{beamer@headercolor}{RGB}{129,48,140} +% \title{\bfseries\color{beamer@headercolor}\thubeamer:清华大学风格\\ Beamer主题} +% \author{{\Large\fangsong 杨敬轩}\\[5pt]\texttt{yanglatex2e@gmail.com}\\[5pt]\texttt{yangjx20@mails.tsinghua.edu.cn}} +% \date{\fileversion\ (\filedate)} +% +% \maketitle\thispagestyle{empty} +% +% \vskip 0.5cm +% +% \def\abstractname{\Large 摘\quad 要} +% \begin{abstract}\normalsize\vskip0.5cm +% \thubeamer~主题为作者在准备课程展示时设计制作, +% 旨在帮助清华大学师生进行学术交流或其他需要演示文稿活动时,方便的使用 \LaTeX{} 制作含有学校特色的演示文稿。 +% \end{abstract} +% +% \vspace*{2em} +% \def\abstractname{\Large 免责声明} +% \begin{abstract} +% \noindent\normalsize +% \begin{enumerate} +% \item 本模板的发布遵守 \href{http://www.latex-project.org/lppl.txt}{\LaTeX\ Project Public License 1.3c} 以及其后的最新版本,使用前请认真阅读协议内 +% 容。 +% \item 本主题为作者个人制作,使用仅供参考,任何由于使用本主题而引起的任何问题均与本主题作者无关。 +% \item 任何个人或组织以本模板为基础进行修改、扩展而生成的新的专用模板,请严格遵 +% 守 \href{http://www.latex-project.org/lppl.txt}{\LaTeX\ Project Public License 1.3c} 协议以及其后的最新版本。由于违犯协议而引起的任何纠纷争端均与 +% 本模板作者无关。 +% \end{enumerate} +% \end{abstract} +% +% +% \clearpage +% \pagestyle{fancy} +% \begin{multicols}{2}[ +% \setlength{\columnseprule}{.4pt} +% \setlength{\columnsep}{18pt}] +% \tableofcontents +% \end{multicols} +% \clearpage +% +% \section{模板介绍} +% \thubeamer\ (\textbf{T}sing\textbf{H}ua \textbf{U}niversity \LaTeX{} +% \textbf{Beamer} Template) 是为了帮助清华大学师生撰写演示文稿而编写的 \LaTeX{} Beamer 模板。 +% +% 本文档将尽量完整的介绍模板的使用方法,如有不清楚之处可以参考示例文档或者根据 +% 第~\ref{sec:howtoask} 节说明提问,有兴趣者可以联系作者参与完善此手册,非常欢迎你清学子对本代码作出贡献。 +% +% \section{安装} +% \label{sec:installation} +% +% \thubeamer\ 已经上传 CTAN,已包含在 TeXLive 与 MiKTeX 发行版中。 +% 安装方法:打开命令行,输入以下命令即可 +% \begin{shell} +% $ tlmgr install thubeamer +% \end{shell} +% 阅读本说明文档可以使用以下命令: +% \begin{shell} +% $ texdoc thubeamer +% \end{shell} +% +% 如果要使用开发版,需自己下载,\thubeamer\ 相关链接: +% \begin{itemize} +% \item 主页:\href{https://github.com/YangLaTeX/thubeamer}{GitHub} +% \item 下载:\href{http://www.ctan.org/pkg/thubeamer}{CTAN} +% \end{itemize} +% +% \subsection{模板的组成} +% 下表列出了 \thubeamer{} 的主要文件及其功能介绍: +% +% \begin{longtable}{l|p{8cm}} +% \toprule +% {\heiti 文件(夹)} & {\heiti 功能描述}\\\midrule +% \endfirsthead +% \midrule +% {\heiti 文件(夹)} & {\heiti 功能描述}\\\midrule +% \endhead +% \endfoot +% \endlastfoot +% thubeamer.dtx & 主题宏包、说明文档以及主题驱动文件的混排文件\\ +% main.tex & 主题测试文档\\ +% figures/ & 主题相关矢量图存储文件夹\\ +% makedoc.bat & 生成主题与用户手册脚本\\ +% makebeamer.bat & 编译测试样例脚本\\ +% makeclean.bat & 清理编译过程中间文件脚本\\ +% makecleanall.bat & 清理编译过程中间文件与样式文件脚本\\ +% Makefile & Linux \& Mac OS脚本\\ +% \textbf{thubeamer.pdf} & 用户手册(本文档)\\ +% \bottomrule +% \end{longtable} +% \textbf{注:}使用前,请仔细阅读\textbf{thubeamer.pdf},即本文档。 +% +% \section{使用说明} +% \label{sec:usage} +% 本手册假定用户已经能处理一般的 \LaTeX\ 文档,并对 \BibTeX\ 有一定了解。如果 +% 从来没有接触过 \TeX\ 和 \LaTeX,建议先学习相关的基础知识。 +% +% \subsection{关于提问} +% \label{sec:howtoask} +% 按照优先级推荐提问的位置如下: +% +% \begin{itemize} +% \item Github Issues: \href{http://github.com/YangLaTeX/thubeamer/issues}{http://github.com/YangLaTeX/thubeamer/issues} +% \item Email: \href{mailto:yanglatex2e@gmail.com}{yanglatex2e@gmail.com}, \href{mailto:yangjx20@mails.tsinghua.edu.cn}{yangjx20@mails.tsinghua.edu.cn} +% \end{itemize} +% +% \subsection{示例文件} +% \label{sec:userguide} +% 模板核心文件有四个\file{*.sty},但是如果 +% 没有示例文档用户会发现很难下手。所以推荐新用户从模板自带的示例文档入手,里面包 +% 括了Beamer写作用到的所有命令及其使用方法,只需要用自己的内容进行相应替换就可以。 +% 对于不清楚的命令可以查阅本手册。下面的例子描述了模板中章节的组织形式,来自于示 +% 例文档,具体内容可以参考模板附带的 \file{main.tex}。 +% +% \lstinputlisting[style=lstStyleLaTeX]{main.tex} +% +% \subsection{论文选项} +% \label{sec:option} +% +% 论文选项在\file{main.tex} 文件的开头描述,此处不赘述。 +% +% \section{使用模板} +% \subsection{如何编译}\label{SubSec:HowToMake} +% \subsubsection{Windows用户} +% 主题项目里已经列出了脚本: +% 首先双击\file{makedoc.bat} 脚本,生成主题和用户手册; +% 然后双击\file{makebeamer.bat} 脚本生成测试 Beamer 文件预览; +% 最后双击\file{makeclean.bat} 清理编译过程的中间文件; +% 双击\file{makecleanall.bat}可以清除辅助文件以及样式文件。 +% +% \subsubsection{Linux \& Mac OS用户} +% 首先运行下面命令生成主题和用户手册; +% \begin{shell} +% $ make doc +% \end{shell} +% +% 然后运行下面命令生成测试 Beamer 文件预览; +% \begin{shell} +% $ make beamer +% \end{shell} +% +% 最后运行下面命令清理编译过程的中间文件。 +% \begin{shell} +% $ make clean +% \end{shell} +% +% 若运行下面命令则清理编译过程的中间文件以及所有样式文件。 +% \begin{shell} +% $ make cleanall +% \end{shell} +% +% \section{致谢} +% \label{sec:thanks} +% 感谢 \href{https://github.com/StickCui/XDUstyle-Beamer-Theme}{XDUstyle}、\href{https://github.com/tl3shi/THUBeamer}{thubeamer} 模板的作者,本模板基于他们改编而来! +% +% 欢迎各位到 \href{http://github.com/YangLaTeX/thubeamer/}{\thubeamer\ Github 主页}贡献! +% +% \StopEventually{\PrintChanges\PrintIndex} +% \clearpage +% +% \section{实现细节} +% +% \subsection{主题主文件部分} +% 导入必要宏包 +% \begin{macrocode} +%<*thubeamer> +\def\thubeamer{\textsc{thu}\-\textsc{Beamer}} +\RequirePackage{tikz} +\usetikzlibrary{external} +\RequirePackage{pgf} +\RequirePackage{multicol} +\RequirePackage{multimedia} +\RequirePackage{calc} +\RequirePackage{ctex} +\RequirePackage{amsmath} +\RequirePackage{amsthm} +\RequirePackage{amssymb} +\RequirePackage{bm} +\RequirePackage{graphicx} +\RequirePackage{tabularx} +\RequirePackage{booktabs} +\RequirePackage{multirow} +\RequirePackage{enumerate} +\RequirePackage{hyperref} +\RequirePackage{algorithm} +\RequirePackage{algorithmic} +\RequirePackage[T1]{fontenc} +\RequirePackage{latexsym,xcolor,multicol,calligra} +\RequirePackage{pstricks,listings,stackengine} +\RequirePackage[sort&compress,numbers]{natbib} +% \end{macrocode} +% +% 主题选项 +% \begin{macrocode} +\DeclareOptionBeamer{thupurple}{ + \PassOptionsToPackage{thupurple}{beamercolorthemethubeamer} + \PassOptionsToPackage{thupurple}{beamerinnerthemethubeamer} + \PassOptionsToPackage{thupurple}{beamerouterthemethubeamer} +} +\DeclareOptionBeamer{thupurple2}{ + \PassOptionsToPackage{thupurple2}{beamercolorthemethubeamer} + \PassOptionsToPackage{thupurple2}{beamerinnerthemethubeamer} + \PassOptionsToPackage{thupurple2}{beamerouterthemethubeamer} +} +\DeclareOptionBeamer{smoothbars}{ + \PassOptionsToPackage{smoothbars}{beamercolorthemethubeamer} + \PassOptionsToPackage{smoothbars}{beamerouterthemethubeamer} +} +\DeclareOptionBeamer{sidebar}{ + \PassOptionsToPackage{sidebar}{beamercolorthemethubeamer} + \PassOptionsToPackage{sidebar}{beamerouterthemethubeamer} +} +\DeclareOptionBeamer{sectiontoc}{ + \PassOptionsToPackage{sectiontoc}{beamerinnerthemethubeamer} +} +\DeclareOptionBeamer{subsectiontoc}{ + \PassOptionsToPackage{subsectiontoc}{beamerinnerthemethubeamer} +} +\ProcessOptionsBeamer +% \end{macrocode} +% +% 特殊设置 +% \begin{macrocode} +\mode +{ + \useinnertheme{thubeamer} + \useoutertheme{thubeamer} + \usecolortheme{thubeamer} +} + +\mode +% +% \end{macrocode} +% \subsection{主题配色文件部分} +% +% 参数设置 +% \begin{macrocode} +%<*thucolorstyle> +\DeclareOptionBeamer{thupurple}{\def\beamer@thucolor{thupurple}} +\DeclareOptionBeamer{thupurple2}{\def\beamer@thucolor{thupurple2}} +\DeclareOptionBeamer{smoothbars}{\def\beamer@thubar{smoothbars}} +\DeclareOptionBeamer{sidebar}{\def\beamer@thubar{sidebar}} +\ProcessOptionsBeamer + +\def\beamer@thucolorpurple{thupurple} +\def\beamer@thusidebar{sidebar} +% \end{macrocode} +% +% 颜色设置。 +% \begin{macrocode} +\mode + +\ifx\beamer@thucolor\beamer@thucolorpurple + \definecolor{beamer@textcolor}{RGB}{119,33,151} + \definecolor{beamer@headercolor}{RGB}{129,48,140} % purple + \ifx\beamer@thubar\beamer@thusidebar + \definecolor{beamer@sidebarcolor}{RGB}{129,48,140} + \else + \definecolor{beamer@sidebarcolor}{RGB}{129,48,140} + \fi +\else + \definecolor{beamer@textcolor}{RGB}{119,33,151} + \definecolor{beamer@headercolor}{RGB}{129,48,140} + \ifx\beamer@thubar\beamer@thusidebar + \definecolor{beamer@sidebarcolor}{RGB}{129,48,140} + \else + \definecolor{beamer@sidebarcolor}{RGB}{129,48,140} + \fi +\fi + +% \setbeamercolor{footline}{bg=beamer@headercolor} +\setbeamercolor{title}{fg=white,bg=beamer@headercolor} +\ifx\beamer@thubar\beamer@thusidebar + \setbeamercolor{frametitle}{fg=beamer@headercolor,bg=beamer@headercolor!10} +\else + \setbeamercolor{frametitle}{fg=white,bg=beamer@headercolor} +\fi +\setbeamerfont{frametitle}{size=\large} + +\setbeamercolor{secondbottomline}{fg=white,bg=beamer@headercolor!50!black} +\setbeamercolor{firstbottomline}{fg=white,bg=beamer@headercolor} + +\setbeamercolor{palette primary}{use=structure,fg=white,bg=structure.fg} +\setbeamercolor{palette secondary}{use=structure,fg=white,bg=structure.fg!75!black} +\setbeamercolor{palette tertiary}{use=structure,fg=white,bg=structure.fg!50!black} +\setbeamercolor{palette quaternary}{fg=white,bg=structure.fg!50!black} + +\setbeamercolor{block title}{fg=white,bg=beamer@headercolor} +\setbeamercolor{block body}{bg=beamer@headercolor!10} +\setbeamercolor{block title example}{% + use={normal text,example text},fg=white,bg=example text.fg!75!green +} +\setbeamercolor{fine separation line}{} +\setbeamercolor{item projected}{fg=white} + +\setbeamercolor{palette sidebar primary}{use=normal text,fg=normal text.fg} +\setbeamercolor{palette sidebar secondary}{use=structure,fg=structure.fg} +\setbeamercolor{palette sidebar tertiary}{use=normal text,fg=normal text.fg} +\setbeamercolor{palette sidebar quaternary}{use=structure,fg=structure.fg} + +\setbeamercolor{section in sidebar}{fg=beamer@textcolor} +\setbeamercolor{section in sidebar shaded}{fg=gray} +\setbeamercolor{separation line}{} +\ifx\beamer@thubar\beamer@thusidebar + \setbeamercolor{sidebar}{bg=beamer@sidebarcolor!10} +\else + \setbeamercolor{sidebar}{bg=beamer@sidebarcolor} +\fi +\setbeamercolor{sidebar}{parent=palette primary} +\setbeamercolor{structure}{fg=beamer@headercolor} +\setbeamercolor{subsection in sidebar}{fg=beamer@textcolor} +\setbeamercolor{subsection in sidebar shaded}{fg=gray} +\setbeamercolor{logo}{bg=beamer@headercolor!20} + +\mode +% +% \end{macrocode} +% +% \subsection{内部主题文件部分} +% +% 必要宏包 +% \begin{macrocode} +%<*thuinnerstyle> +\RequirePackage{tikz} +\usetikzlibrary{external} +% \end{macrocode} +% +% 参数设置 +% \begin{macrocode} +\DeclareOptionBeamer{sectiontoc}{\def\beamer@thusectoc{sectiontoc}} +\DeclareOptionBeamer{subsectiontoc}{\def\beamer@thusubsectoc{subsectiontoc}} +\ProcessOptionsBeamer + +\def\beamer@thusectiontoc{sectiontoc} +\def\beamer@thusubsectiontoc{subsectiontoc} +% \end{macrocode} +% +% 特殊设置 +% \begin{macrocode} +\mode + +\useinnertheme{circles} +% \usefonttheme{structurebold} +\setbeamertemplate{caption}[numbered]{} +\useinnertheme[shadow]{rounded} + +\newcommand\varparallel{% + \mathrel{% + \text{% + \tikz[baseline] \draw (0em,-0.3ex) -- (.4em,1.7ex) (.2em,-0.3ex) -- (.6em,1.7ex); + }% + }% +} + +\ifx\beamer@thusectoc\beamer@thusectiontoc + \AtBeginSection[]{ + \begin{frame} + \begin{multicols}{2} + \tableofcontents[sectionstyle=show/shaded,subsectionstyle=show/shaded/hide,subsubsectionstyle=show/shaded/hide] + \end{multicols} + \end{frame} + } +\fi + +\ifx\beamer@thusubsectoc\beamer@thusubsectiontoc + \AtBeginSubsection[]{ + \begin{frame} + \begin{multicols}{2} + \tableofcontents[sectionstyle=show/shaded,subsectionstyle=show/shaded/hide,subsubsectionstyle=show/shaded/hide] + \end{multicols} + \end{frame} + } +\fi + +\mode +% +% \end{macrocode} +% \subsection{外部主题文件部分} +% +% \begin{macrocode} +%<*thuouterstyle> +% \end{macrocode} +% +% 参数设置 +% \begin{macrocode} +\DeclareOptionBeamer{smoothbars}{\def\beamer@thubar{smoothbars}} +\DeclareOptionBeamer{sidebar}{\def\beamer@thubar{sidebar}} +\ProcessOptionsBeamer +\def\beamer@thusidebar{sidebar} + +\mode + +% 取消导航符号 +\setbeamertemplate{navigation symbols}{} + +\ifx\beamer@thubar\beamer@thusidebar + \useoutertheme[width=0.17\linewidth]{sidebar} + \logo{\includegraphics[width=0.08\linewidth]{thulogo.pdf}} +\else + \useoutertheme[footline=authorinstitutetitle,subsection=false]{smoothbars} +\fi + +% set footline +\makeatletter +\newcommand{\frameofframes}{/} +\newcommand{\setframeofframes}[1]{ + \renewcommand{\frameofframes}{#1} +} +\setbeamertemplate{footline}{% + \begin{beamercolorbox}[colsep=1.5pt]{upper separation line foot} + \end{beamercolorbox} + \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% + leftskip=.3cm,rightskip=.3cm plus1fil]{firstbottomline}% + \leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor}% + \hfill% + {\usebeamerfont{institute in head/foot}% + \usebeamercolor[fg]{frame number}% + \insertshortinstitute + }% + \end{beamercolorbox}% + \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex,% + leftskip=.3cm,rightskip=.3cm plus1fil]{secondbottomline}% + {\usebeamerfont{title in head/foot}\insertshorttitle}% + \hfill% + {\usebeamerfont{frame number}\usebeamercolor[fg]{frame number}\insertframenumber~\frameofframes~\inserttotalframenumber} + \end{beamercolorbox}% + \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} + \end{beamercolorbox} +} +\makeatother + +\mode +% +% \end{macrocode} +% +% \iffalse +% \begin{macrocode} +%<*dtx-style> +\ProvidesPackage{dtx-style} +\RequirePackage{hypdoc} +\RequirePackage[UTF8,scheme=chinese,fontset=windowsnew]{ctex} +\RequirePackage{newpxtext} +\RequirePackage{newpxmath} +\RequirePackage[top=2.5cm, bottom=2.5cm, left=3cm, right=2cm, headsep=8mm]{geometry} +\RequirePackage{array,longtable,booktabs} +\RequirePackage{listings} +\RequirePackage{fancyhdr} +\RequirePackage{xcolor} +\RequirePackage{enumitem} +\RequirePackage{etoolbox} +\RequirePackage{metalogo} +\RequirePackage{hyperref} + +\colorlet{thu@macro}{purple!60!black} +\colorlet{thu@env}{purple!70!black} +\colorlet{thu@option}{purple} +\patchcmd{\PrintMacroName}{\MacroFont}{\MacroFont\bfseries\color{thu@macro}}{}{} +\patchcmd{\PrintDescribeMacro}{\MacroFont}{\MacroFont\bfseries\color{thu@macro}}{}{} +\patchcmd{\PrintDescribeEnv}{\MacroFont}{\MacroFont\bfseries\color{thu@env}}{}{} +\patchcmd{\PrintEnvName}{\MacroFont}{\MacroFont\bfseries\color{thu@env}}{}{} + +\def\DescribeOption{% + \leavevmode\@bsphack\begingroup\MakePrivateLetters% + \Describe@Option} +\def\Describe@Option#1{\endgroup + \marginpar{\raggedleft\PrintDescribeOption{#1}}% + \thu@special@index{option}{#1}\@esphack\ignorespaces} +\def\PrintDescribeOption#1{\strut \MacroFont\bfseries\sffamily\color{thu@option} #1\ } +\def\thu@special@index#1#2{\@bsphack + \begingroup + \HD@target + \let\HDorg@encapchar\encapchar + \edef\encapchar usage{% + \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}% + }% + \index{#2\actualchar{\string\ttfamily\space#2} + (#1)\encapchar usage}% + \index{#1:\levelchar#2\actualchar + {\string\ttfamily\space#2}\encapchar usage}% + \endgroup + \@esphack} + +\lstdefinestyle{lstStyleBase}{% + basicstyle=\small\ttfamily, + aboveskip=\medskipamount, + belowskip=\medskipamount, + lineskip=0pt, + boxpos=c, + showlines=false, + extendedchars=true, + upquote=true, + tabsize=2, + showtabs=false, + showspaces=false, + showstringspaces=false, + numbers=none, + linewidth=\linewidth, + xleftmargin=4pt, + xrightmargin=0pt, + resetmargins=false, + breaklines=true, + breakatwhitespace=false, + breakindent=0pt, + breakautoindent=true, + columns=flexible, + keepspaces=true, + gobble=2, + framesep=3pt, + rulesep=1pt, + framerule=1pt, + backgroundcolor=\color{gray!5}, + stringstyle=\color{purple!40!black!100}, + keywordstyle=\bfseries\color{purple!50!black}, + commentstyle=\slshape\color{black!60}} + +\lstdefinestyle{lstStyleShell}{% + style=lstStyleBase, + frame=l, + rulecolor=\color{purple}, + language=bash} + +\definecolor{beamer@headercolor}{RGB}{21,95,130} +\lstdefinestyle{lstStyleLaTeX}{% + style=lstStyleBase, + frame=l, + rulecolor=\color{beamer@headercolor}, + language=[LaTeX]TeX} + +\lstnewenvironment{latex}{\lstset{style=lstStyleLaTeX}}{} +\lstnewenvironment{shell}{\lstset{style=lstStyleShell}}{} + +\setlist{nosep} + +\DeclareDocumentCommand{\option}{m}{\textsf{#1}} +\DeclareDocumentCommand{\env}{m}{\texttt{#1}} +\DeclareDocumentCommand{\pkg}{s m}{% + \texttt{#2}\IfBooleanF#1{\thu@special@index{package}{#2}}} +\DeclareDocumentCommand{\file}{s m}{% + \texttt{#2}\IfBooleanF#1{\thu@special@index{file}{#2}}} +\newcommand{\myentry}[1]{% + \marginpar{\small\raggedleft\color{purple}\bfseries\strut #1}} +\newcommand{\note}[2][Note]{{% + \color{magenta}{\bfseries #1}\emph{#2}}} +\def\thubeamer{\textsc{Thu}\-\textsc{Beamer}} +\def\thu{清华大学} +% +% \end{macrocode} +% \fi +% +% \Finale +% +\endinput +% \iffalse +% Local Variables: +% mode: doctex +% TeX-master: t +% End: +% \fi diff --git a/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.pdf b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.pdf new file mode 100644 index 0000000000..0cda53aa81 Binary files /dev/null and b/macros/latex/contrib/beamer-contrib/themes/thubeamer/thubeamer.pdf differ diff --git a/macros/latex/contrib/changes/changes.drv b/macros/latex/contrib/changes/changes.drv index 4f8e28e5ad..1f7edaa71e 100644 --- a/macros/latex/contrib/changes/changes.drv +++ b/macros/latex/contrib/changes/changes.drv @@ -1,6 +1,6 @@ %%% % driver file of changes package -\newcommand{\docversion}{4.1.0} +\newcommand{\docversion}{4.2.0} \documentclass[titlepage, parskip=half, toc=flat, cleardoublepage=empty, captions=nooneline, origlongtable, english]{scrartcl} diff --git a/macros/latex/contrib/changes/changes.dtx b/macros/latex/contrib/changes/changes.dtx index fa99005bae..f2388c9b4a 100644 --- a/macros/latex/contrib/changes/changes.dtx +++ b/macros/latex/contrib/changes/changes.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1275} +% \CheckSum{1357} % % \iffalse meta-comment % @@ -68,6 +68,7 @@ % \changes{v4.0.3}{2021/05/09}{bugfix: compile error with cite command in change markup with final option} % \changes{v4.0.4}{2021/05/13}{bugfix: added missing regression.dtx to ctan archive; no code change} % \changes{v4.1.0}{2021/05/30}{clickable list of changes} +% \changes{v4.2.0}{2021/07/07}{new macro for setting anonymous name; french translations} % \GetFileInfo{changes.dtx} % \RecordChanges % @@ -107,8 +108,8 @@ % Type some information to the console. % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{changes}[2021/05/30 v4.1.0 changes package] -\typeout{*** changes package 2021/05/30 v4.1.0 ***} +\ProvidesPackage{changes}[2021/07/07 v4.2.0 changes package] +\typeout{*** changes package 2021/07/07 v4.2.0 ***} % \end{macrocode} % % Package \docpackage{xkeyval} provides options with key-value-pairs. @@ -365,7 +366,8 @@ } % \end{macrocode} % -% Store default author color.. +% +% Store default author color. % \begin{macrocode} \newcommand{\Changes@optiondefaultcolor}{blue} \DeclareOptionX{defaultcolor}{ @@ -616,7 +618,7 @@ % \begin{macrocode} \newrobustcmd{\IfIsAuthorEmptyAtPosition}[4]{% \ifboolexpr{% - test {\IfIsAnonymous{#1}} or% + test {\IfIsAuthorOutputEmpty{#1}} or% not test {\IfStrEq{\Changes@optionauthormarkupposition}{#2}}% }% {#3}% @@ -625,6 +627,26 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\IfIsAuthorOutputEmpty} +% +% Check if author output is empty. +% +% This test could be removed if the test for empty \doccommand{Changes@output@author} would work. % todo +% +% Corresponds to the if macros of \docpackage{etoolbox}, so it can be used in it's boolean tests. +% Mainly the last two parameters are the results of \emph{true} and \emph{false} computation. +% \begin{macrocode} +\newrobustcmd{\IfIsAuthorOutputEmpty}[3]{% + \ifboolexpr{% + test {\IfIsAnonymous{#1}} and% + not test {\IfStrEq{\Changes@optionauthormarkuptext}{name}}% + }% + {#2}% + {#3}% +} +% \end{macrocode} +% \end{macro} +% % \subsection{Packages} % % Package \docpackage{xcolor} provides colored text. @@ -749,6 +771,20 @@ \addto\captionsitalian{\def\changesnochanges{Nessuna modifica.}} % translation by me (EK), please provide correct translation \addto\captionsitalian{\def\changesnoloc{La lista delle modifiche sar\`a disponibile alla prossima esecuzione di \LaTeX.}} \addto\captionsitalian{\def\changesnosoc{Le modifiche sar\`a disponibile alla prossima esecuzione di \LaTeX.}} + + \addto\captionsfrench{\def\listofchangesname{Liste des modifications}} + \addto\captionsfrench{\def\summaryofchangesname{Modifications}} + \addto\captionsfrench{\def\compactsummaryofchangesname{Modifications (compact)}} + \addto\captionsfrench{\def\changesaddedname{Ajout\'e}} + \addto\captionsfrench{\def\changesdeletedname{Supprim\'e}} + \addto\captionsfrench{\def\changesreplacedname{Remplac\'e}} + \addto\captionsfrench{\def\changeshighlightname{Mis en \'evidence}} + \addto\captionsfrench{\def\changescommentname{Comment\'e}} + \addto\captionsfrench{\def\changesauthorname{Auteur}} + \addto\captionsfrench{\def\changesanonymousname{Anonyme}} + \addto\captionsfrench{\def\changesnochanges{Pas de modification}} + \addto\captionsfrench{\def\changesnoloc{Liste des modifications disponible apr\`es la prochaine ex\'ecution de \LaTeX.}} + \addto\captionsfrench{\def\changesnosoc{Résumé des modifications disponible apr\`es la prochaine ex\'ecution de \LaTeX.}} } {} % \end{macrocode} @@ -845,6 +881,18 @@ % \end{macrocode} % % +% \begin{macro}{\setanonymousname} +% Sets the anonymous author name. +% \begin{macrocode} +\newrobustcmd{\setanonymousname}[1]{ + \AtBeginDocument{ + \def\changesanonymousname{#1} + } +} +% \end{macrocode} +% \end{macro} +% +% % \subsubsection{Author markup} % % \begin{macro}{\Changes@Markup@author} @@ -1026,7 +1074,9 @@ \IfIsColored% {\colorlet{Changes@todocolor}{authorcolor}}% {\colorlet{Changes@todocolor}{black}}% - \todo[color=Changes@todocolor!10, bordercolor=Changes@todocolor, linecolor=Changes@todocolor!70, nolist]{\textbf{[\IfIsAnonymous{#2}{}{#3~}\arabic{authorcommentcount}]} #1}% + \todo[color=Changes@todocolor!10, bordercolor=Changes@todocolor, linecolor=Changes@todocolor!70, nolist]{% + \textbf{[\IfIsAuthorOutputEmpty{#2}{}{#3~}\arabic{authorcommentcount}]} #1% + }% }{}% \IfStrEq{\Changes@optioncommentmarkup}{margin}% {% @@ -1034,13 +1084,13 @@ \IfIsColored% {\leavevmode\color{authorcolor}}% {}% - \textbf{[\IfIsAnonymous{#2}{}{#3~}\arabic{Changes@commentCount#2}]:} #1% + \textbf{[\IfIsAuthorOutputEmpty{#2}{}{#3~}\arabic{authorcommentcount}]:} #1% }% }{}% \IfStrEq{\Changes@optioncommentmarkup}{footnote}% {% \footnote{% - \textbf{[\IfIsAnonymous{#2}{}{#3~}\arabic{Changes@commentCount#2}]:} #1% + \textbf{[\IfIsAuthorOutputEmpty{#2}{}{#3~}\arabic{authorcommentcount}]:} #1% }% }{}% \IfStrEq{\Changes@optioncommentmarkup}{uwave}% @@ -1051,7 +1101,7 @@ {}% \allowbreak% \uwave{% - \textbf{[\IfIsAnonymous{#2}{}{#3~}\arabic{Changes@commentCount#2}]:} #1% + \textbf{[\IfIsAuthorOutputEmpty{#2}{}{#3~}\arabic{authorcommentcount}]:} #1% }% }% }{}% @@ -1114,39 +1164,55 @@ % % \begin{macro}{\Changes@output@author} % -% Output command for the author. +% Output command for the author: id or name. % % This command has the following arguments: % \begin{enumerate} % \item author's id -% \item position to output the author to (left or right) % \end{enumerate} -% -% \doccommand{DeclareRobustCommand} is used for not breaking the todo note definition. -% \begin{macrocode} -\newrobustcmd{\Changes@output@author}[2]{% -% \end{macrocode} -% -% Output author text only if author's id is given and the position matches, otherwise output empty text. % \begin{macrocode} - \IfIsAuthorEmptyAtPosition{#1}{#2}% +\newrobustcmd{\Changes@output@author}[1]{% + \IfStrEq{\Changes@optionauthormarkuptext}{id}% + {#1}% {}% + \IfStrEq{\Changes@optionauthormarkuptext}{name}% {% - \IfStrEq{\Changes@optionauthormarkuptext}{id}% - {#1}% - {}% - \IfStrEq{\Changes@optionauthormarkuptext}{name}% + \IfIsAnonymous{#1}% + {\changesanonymousname}% {% - % \end{macrocode} - % - % I cannot use \doccommand{IfIsEmpty} here, because it does not work in this case. - % I cannot add the test with \doccommand{IfStrEq} to \doccommand{IfIsEmpty} because it breaks e.g. with a \doccommand{cite} command in the final option. - % \begin{macrocode} + % \end{macrocode} + % + % I cannot use \doccommand{IfIsEmpty} here, because it does not work in this case. + % I cannot add the test with \doccommand{IfStrEq} to \doccommand{IfIsEmpty} because + % it breaks e.g. with a \doccommand{cite} command in the final option. + % \begin{macrocode} \IfStrEq{\csuse{Changes@AuthorName#1}}{}% {#1}% {\csuse{Changes@AuthorName#1}}% - }% - {}% + }% + }% + {}% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Changes@output@author@position} +% +% Output command for the author at the given position. +% +% This command has the following arguments: +% \begin{enumerate} +% \item author's id +% \item position to output the author to (left or right) +% \end{enumerate} +% +% \doccommand{DeclareRobustCommand} is used for not breaking the todo note definition. +% \begin{macrocode} +\newrobustcmd{\Changes@output@author@position}[2]{% + \IfIsAuthorEmptyAtPosition{#1}{#2}% + {}% + {% + \Changes@output@author{#1}% }% } % \end{macrocode} @@ -1272,7 +1338,7 @@ \IfIsColored% {\color{authorcolor}}% {}% - \Changes@Markup@author{\Changes@output@author{#2}{left}}% + \Changes@Markup@author{\Changes@output@author@position{#2}{left}}% }}% }{}% % \end{macrocode} @@ -1303,7 +1369,7 @@ \IfIsColored% {\color{authorcolor}}% {}% - \Changes@Markup@author{\Changes@output@author{#2}{right}}% + \Changes@Markup@author{\Changes@output@author@position{#2}{right}}% }}% }{}% % \end{macrocode} @@ -1324,7 +1390,7 @@ \Changes@Markup@comment% {#5}% {#2}% - {\Changes@output@author{#2}{left}\Changes@output@author{#2}{right}}% + {\Changes@output@author{#2}}% }% }% % \end{macrocode} @@ -1717,6 +1783,10 @@ {% \IfFileExists{\jobname.\Changes@socextension}% {% +% \end{macrocode} +% Deactivate semicolon as shorthand in order to avoid problems reading the semicolon separated lines. +% \begin{macrocode} + \ifbabelshorthand{;}{\shorthandoff{;}}{} \newread\Changes@InFile% \openin\Changes@InFile = \jobname.\Changes@socextension% % \end{macrocode} @@ -1781,6 +1851,10 @@ % \begin{macrocode} \repeat \closein\Changes@InFile% +% \end{macrocode} +% Reactivate semicolon as shorthand. +% \begin{macrocode} + \ifbabelshorthand{;}{\shorthandon{;}}{} }{% \emph{\changesnosoc}% \PackageWarning{changes}{LaTeX rerun needed for summary of changes}% diff --git a/macros/latex/contrib/changes/changes.english.pdf b/macros/latex/contrib/changes/changes.english.pdf index d6ba8fee86..41fc213efc 100644 Binary files a/macros/latex/contrib/changes/changes.english.pdf and b/macros/latex/contrib/changes/changes.english.pdf differ diff --git a/macros/latex/contrib/changes/changes.english.withcode.pdf b/macros/latex/contrib/changes/changes.english.withcode.pdf index 1ee8066abe..bb7d43763a 100644 Binary files a/macros/latex/contrib/changes/changes.english.withcode.pdf and b/macros/latex/contrib/changes/changes.english.withcode.pdf differ diff --git a/macros/latex/contrib/changes/changes.ins b/macros/latex/contrib/changes/changes.ins index 72e217bcfc..02fb69a16a 100644 --- a/macros/latex/contrib/changes/changes.ins +++ b/macros/latex/contrib/changes/changes.ins @@ -1,6 +1,6 @@ %% This file creates the needed files from changes.dtx %% -\def\filedate{2021/05/20} +\def\filedate{2021/07/07} \def\batchfile{changes.ins} \input docstrip @@ -100,10 +100,12 @@ Copyright 2007-2021 Ekkart Kleinod \file{examples/changes.example.commentmarkup.footnote.tex}{\from{examples.dtx}{example:commentmarkup:footnote}} \file{examples/changes.example.commentmarkup.uwave.tex}{\from{examples.dtx}{example:commentmarkup:uwave}} \file{examples/changes.example.commentmarkup.todo.tex}{\from{examples.dtx}{example:commentmarkup:todo}} + \file{examples/changes.example.commentmarkup.wrong.tex}{\from{examples.dtx}{example:commentmarkup:wrong}} % \file{examples/changes.example.highlightmarkup.background.tex}{\from{examples.dtx}{example:highlightmarkup:background}} \file{examples/changes.example.highlightmarkup.uuline.tex}{\from{examples.dtx}{example:highlightmarkup:uuline}} \file{examples/changes.example.highlightmarkup.uwave.tex}{\from{examples.dtx}{example:highlightmarkup:uwave}} + \file{examples/changes.example.highlightmarkup.wrong.tex}{\from{examples.dtx}{example:highlightmarkup:wrong}} % \file{examples/changes.example.setaddedmarkup.tex}{\from{examples.dtx}{example:setaddedmarkup}} \file{examples/changes.example.setdeletedmarkup.tex}{\from{examples.dtx}{example:setdeletedmarkup}} @@ -126,6 +128,8 @@ Copyright 2007-2021 Ekkart Kleinod \file{examples/changes.example.authormarkuptext.wrong.tex}{\from{examples.dtx}{example:authormarkuptext:wrong}} % \file{examples/changes.example.defaultcolor.tex}{\from{examples.dtx}{example:defaultcolor}} +% + \file{examples/changes.example.setanonymousname.tex}{\from{examples.dtx}{example:setanonymousname}} % \file{examples/changes.example.setauthormarkup.tex}{\from{examples.dtx}{example:setauthormarkup}} \file{examples/changes.example.setauthormarkupposition.tex}{\from{examples.dtx}{example:setauthormarkupposition}} @@ -156,7 +160,15 @@ Copyright 2007-2021 Ekkart Kleinod % \file{examples/changes.example.package.hyperref.tex}{\from{examples.dtx}{example:package.hyperref}} % - \file{regression/changes.regression.draft.tex}{\from{regression.dtx}{regression:draft}} + \file{examples/changes.example.language.british.tex}{\from{examples.dtx}{example:language:british}} + \file{examples/changes.example.language.english.tex}{\from{examples.dtx}{example:language:english}} + \file{examples/changes.example.language.french.tex}{\from{examples.dtx}{example:language:french}} + \file{examples/changes.example.language.german.tex}{\from{examples.dtx}{example:language:german}} + \file{examples/changes.example.language.italian.tex}{\from{examples.dtx}{example:language:italian}} + \file{examples/changes.example.language.ngerman.tex}{\from{examples.dtx}{example:language:ngerman}} +% + \file{regression/changes.regression.draft.id.tex}{\from{regression.dtx}{regression:draft:id}} + \file{regression/changes.regression.draft.name.tex}{\from{regression.dtx}{regression:draft:name}} \file{regression/changes.regression.final.tex}{\from{regression.dtx}{regression:final}} } diff --git a/macros/latex/contrib/changes/changes.ngerman.pdf b/macros/latex/contrib/changes/changes.ngerman.pdf index 68bf529573..9fce930e6f 100644 Binary files a/macros/latex/contrib/changes/changes.ngerman.pdf and b/macros/latex/contrib/changes/changes.ngerman.pdf differ diff --git a/macros/latex/contrib/changes/examples.dtx b/macros/latex/contrib/changes/examples.dtx index 0f6f1cdea3..22a58a492c 100644 --- a/macros/latex/contrib/changes/examples.dtx +++ b/macros/latex/contrib/changes/examples.dtx @@ -39,7 +39,15 @@ % Start the \LaTeX document the standard way. % % \begin{macrocode} +%\documentclass[11pt, a4paper, notitlepage, british]{article} +%\documentclass[11pt, a4paper, notitlepage, english]{article} +%\documentclass[11pt, a4paper, notitlepage, french]{article} +%\documentclass[11pt, a4paper, notitlepage, german]{article} +%\documentclass[11pt, a4paper, notitlepage, italian]{article} +%\documentclass[11pt, a4paper, notitlepage, ngerman]{article} +%<*!example:language:british&!example:language:english&!example:language:french&!example:language:german&!example:language:italian&!example:language:ngerman> \documentclass[11pt, a4paper, notitlepage, english]{article} +% \usepackage{babel} % \end{macrocode} % @@ -50,9 +58,9 @@ % Different package options. % % \begin{macrocode} -%<*example:simple|example:setsocextension|example:setlocextension|example:setaddedmarkup|example:setdeletedmarkup|example:setcommentmarkup|example:sethighlightmarkup|example:setauthormarkup|example:setauthormarkupposition|example:setauthormarkuptext|example:listofchanges:list|example:listofchanges:show|example:listofchanges:summary|example:listofchanges:compactsummary|example:listofchanges:all|example:listofchanges:title|example:listofchanges:wrong|example:settruncatewidth|example:setsummarywidth|example:setsummarytowidth|example:package.hyperref> +%<*example:simple|example:setsocextension|example:setlocextension|example:setaddedmarkup|example:setdeletedmarkup|example:setcommentmarkup|example:sethighlightmarkup|example:setauthormarkup|example:setauthormarkupposition|example:setauthormarkuptext|example:listofchanges:list|example:listofchanges:show|example:listofchanges:summary|example:listofchanges:compactsummary|example:listofchanges:all|example:listofchanges:title|example:listofchanges:wrong|example:settruncatewidth|example:setsummarywidth|example:setsummarytowidth|example:package.hyperref|example:language:british|example:language:english|example:language:french|example:language:german|example:language:italian|example:language:ngerman> \usepackage{changes} -% +% % %<*example:draft> \usepackage[draft]{changes} @@ -177,6 +185,9 @@ %<*example:commentmarkup:todo> \usepackage[commentmarkup=todo]{changes} % +%<*example:commentmarkup:wrong> +\usepackage[commentmarkup=wrong]{changes} +% % %<*example:highlightmarkup:background> \usepackage[highlightmarkup=background]{changes} @@ -187,6 +198,9 @@ %<*example:highlightmarkup:uwave> \usepackage[highlightmarkup=uwave]{changes} % +%<*example:highlightmarkup:wrong> +\usepackage[highlightmarkup=wrong]{changes} +% % %<*example:authormarkup:superscript> \usepackage[authormarkup=superscript]{changes} @@ -220,9 +234,9 @@ %<*example:authormarkuptext:id> \usepackage[authormarkuptext=id]{changes} % -%<*example:authormarkuptext:name> +%<*example:authormarkuptext:name|example:setanonymousname> \usepackage[authormarkuptext=name]{changes} -% +% %<*example:authormarkuptext:wrong> \usepackage[authormarkuptext=wrong]{changes} % @@ -257,6 +271,10 @@ \sethighlightmarkup{\emph{#1}} % % +%<*example:setanonymousname> +\setanonymousname{Not so anonymous} +% +% %<*example:setauthormarkup> \setauthormarkup{\xout{#1}} % @@ -301,51 +319,167 @@ % \begin{macrocode} \begin{document} - %\verb|\usepackage{changes}| -%\verb|\listofchanges[style=summary]| +%\verb|\usepackage[draft]{changes}| +%\verb|\usepackage[final]{changes}| + +%\verb|\usepackage[markup=default]{changes}| +%\verb|\usepackage[markup=underlined]{changes}| +%\verb|\usepackage[markup=bfit]{changes}| +%\verb|\usepackage[markup=nocolor]{changes}| +%\verb|\usepackage[markup=wrong]{changes}| + +%\verb|\usepackage[commandnameprefix=none]{changes}| +%\verb|\usepackage[commandnameprefix=always]{changes}| +%\verb|\usepackage[commandnameprefix=ifneeded]{changes}| +%\verb|\usepackage[commandnameprefix=wrong]{changes}| + +%\verb|\usepackage[addedmarkup=colored]{changes}| +%\verb|\usepackage[addedmarkup=uline]{changes}| +%\verb|\usepackage[addedmarkup=uuline]{changes}| +%\verb|\usepackage[addedmarkup=uwave]{changes}| +%\verb|\usepackage[addedmarkup=dashuline]{changes}| +%\verb|\usepackage[addedmarkup=dotuline]{changes}| +%\verb|\usepackage[addedmarkup=bf]{changes}| +%\verb|\usepackage[addedmarkup=it]{changes}| +%\verb|\usepackage[addedmarkup=sl]{changes}| +%\verb|\usepackage[addedmarkup=em]{changes}| +%\verb|\usepackage[addedmarkup=wrong]{changes}| + +%\verb|\usepackage[deletedmarkup=colored]{changes}| +%\verb|\usepackage[deletedmarkup=uline]{changes}| +%\verb|\usepackage[deletedmarkup=uuline]{changes}| +%\verb|\usepackage[deletedmarkup=uwave]{changes}| +%\verb|\usepackage[deletedmarkup=dashuline]{changes}| +%\verb|\usepackage[deletedmarkup=dotuline]{changes}| +%\verb|\usepackage[deletedmarkup=sout]{changes}| +%\verb|\usepackage[deletedmarkup=xout]{changes}| +%\verb|\usepackage[deletedmarkup=bf]{changes}| +%\verb|\usepackage[deletedmarkup=it]{changes}| +%\verb|\usepackage[deletedmarkup=sl]{changes}| +%\verb|\usepackage[deletedmarkup=em]{changes}| +%\verb|\usepackage[deletedmarkup=wrong]{changes}| + +%\verb|\usepackage[commentmarkup=margin]{changes}| +%\verb|\usepackage[commentmarkup=footnote]{changes}| +%\verb|\usepackage[commentmarkup=uwave]{changes}| +%\verb|\usepackage[commentmarkup=todo]{changes}| +%\verb|\usepackage[commentmarkup=wrong]{changes}| + +%\verb|\usepackage[highlightmarkup=background]{changes}| +%\verb|\usepackage[highlightmarkup=uuline]{changes}| +%\verb|\usepackage[highlightmarkup=uwave]{changes}| +%\verb|\usepackage[highlightmarkup=wrong]{changes}| + %\verb|\setaddedmarkup{\emph{#1}}| %\verb|\setdeletedmarkup{\emph{#1}}| %\verb|\setcommentmarkup{\IfIsColored{\color{authorcolor}}{}---~\IfIsAnonymous{#2}{}{\textbf{#3} }#1~---}| %\verb|\sethighlightmarkup{\emph{#1}}| + +%\verb|\usepackage[authormarkup=superscript]{changes}| +%\verb|\usepackage[authormarkup=subscript]{changes}| +%\verb|\usepackage[authormarkup=brackets]{changes}| +%\verb|\usepackage[authormarkup=footnote]{changes}| +%\verb|\usepackage[authormarkup=none]{changes}| +%\verb|\usepackage[authormarkup=wrong]{changes}| + +%\verb|\usepackage[authormarkupposition=left]{changes}| +%\verb|\usepackage[authormarkupposition=right]{changes}| +%\verb|\usepackage[authormarkupposition=wrong]{changes}| + +%\verb|\usepackage[authormarkuptext=id]{changes}| +%\verb|\usepackage[authormarkuptext=name]{changes}| +%\verb|\usepackage[authormarkuptext=wrong]{changes}| + +%\verb|\usepackage[defaultcolor=magenta]{changes}| + +%\verb|\usepackage[authormarkuptext=name]{changes} \setanonymousname{Not so anonymous}| + %\verb|\setauthormarkup{\xout{#1}}| %\verb|\setauthormarkupposition{left}| %\verb|\setauthormarkuptext{name}| + %\verb|\settruncatewidth{.3\textwidth}| -%\verb|\setlocextension{changes}| -%\verb|\setsocextension{changes}| + %\verb|\setsummarywidth{3cm}| %\verb|\setsummarytowidth{The longest text you can imagine for the summary.}| + +%\verb|\setlocextension{changes}| +%\verb|\setsocextension{changes}| + +%\verb|See before list!| +%\verb|See before list!| +%\verb|See before list!| +%\verb|See before list!| +%\verb|See before list!| +%\verb|See before list!| +%\verb|See before list!| + +%\verb|\usepackage[todonotes={textsize=tiny}]{changes}| +%\verb|\usepackage[truncate=hyphenate]{changes}| +%\verb|\usepackage[ulem=UWforbf]{changes}| +%\verb|\usepackage[xcolor=hideerrors]{changes}| + %\verb|\usepackage{hyperref}| for linked list of changes +%\verb|\documentclass[11pt, a4paper, notitlepage, british]{article}| +%\verb|\documentclass[11pt, a4paper, notitlepage, english]{article}| +%\verb|\documentclass[11pt, a4paper, notitlepage, french]{article}| +%\verb|\documentclass[11pt, a4paper, notitlepage, german]{article}| +%\verb|\documentclass[11pt, a4paper, notitlepage, italian]{article}| +%\verb|\documentclass[11pt, a4paper, notitlepage, ngerman]{article}| + %<*example:listofchanges:list|example:settruncatewidth|example:package.hyperref> +\verb|\listofchanges| \listofchanges % %<*example:listofchanges:summary|example:setsummarywidth|example:setsummarytowidth> +\verb|\listofchanges[style=summary]| \listofchanges[style=summary] % %<*example:listofchanges:compactsummary> +\verb|\listofchanges[style=compactsummary]| \listofchanges[style=compactsummary] % -%<*example:listofchanges:all|example:setlocextension|example:setsocextension> +%<*example:listofchanges:all|example:setanonymousname|example:setlocextension|example:setsocextension|example:language:british|example:language:english|example:language:french|example:language:german|example:language:italian|example:language:ngerman> +\verb|\listofchanges| \listofchanges + +\verb|\listofchanges[style=summary]| \listofchanges[style=summary] + +\verb|\listofchanges[style=compactsummary]| \listofchanges[style=compactsummary] -% +% %<*example:listofchanges:title> +\verb|\listofchanges[title={New title for loc}]| \listofchanges[title={New title for loc}] + +\verb|\listofchanges[style=summary, title={New title for summary}]| \listofchanges[style=summary, title={New title for summary}] + +\verb|\listofchanges[style=compactsummary, title={New title for compact summary}]| \listofchanges[style=compactsummary, title={New title for compact summary}] % %<*example:listofchanges:show> +\verb|\listofchanges[title={Additions and deletions}, show=added|deleted]| \listofchanges[title={Additions and deletions}, show=added|deleted] + +\verb|\listofchanges[title={Comments}, show=comment]| \listofchanges[title={Comments}, show=comment] + +\verb|\listofchanges[style=summary, title={Summary of comments and replacements}, show=comment|replaced]| \listofchanges[style=summary, title={Summary of comments and replacements}, show=comment|replaced] + +\verb|\listofchanges[style=compactsummary, title={Compact summary of replacements}, show=replaced]| \listofchanges[style=compactsummary, title={Compact summary of replacements}, show=replaced] + +\verb|\listofchanges[style=compactsummary, title={Compact summary of all changes (show=wrong)}, show=wrong]| \listofchanges[style=compactsummary, title={Compact summary of all changes (show=wrong)}, show=wrong] % %<*example:listofchanges:wrong> +\verb|\listofchanges[style=wrong]| \listofchanges[style=wrong] % diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf index df9f9e04b7..e0c6d10c09 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.bf.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf index d7dd7f81e2..7bbda99bf5 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.colored.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf index c964e3b05b..edd71fa785 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dashuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf index 2cf129d8d1..f38cdec1bb 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.dotuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf index 01cf200576..4c0ffa99f3 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.em.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf index 9b4a49988e..1f5c5effeb 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.it.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf index 627b20f2c2..964e5f8d21 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.sl.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf index 1e8f4d499e..4fdbf3e207 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf index 31a624cf5d..ea44909e53 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf index 53e5087ac8..94d47e27b3 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf index 4668d0f373..cf90151fa8 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.addedmarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf index f63bf8eceb..1a1e00cce8 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.brackets.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf index 7c51870ed6..bcf0e897e0 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.footnote.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf index 2b76eb3e0f..9fa744ba69 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.none.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf index eb6264508c..3b582b0314 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.subscript.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf index 4d9021e12c..53e02198e2 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.superscript.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf index b84a53b145..53d32b3cd1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf index 7b3879afde..d395848a66 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.left.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf index 7173c42d99..9bdbfae650 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.right.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf index 9c27447292..2a9a6d32b2 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkupposition.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf index 9fe437fe29..91693ae5f1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.id.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf index a6b4cd9299..068bc51dc7 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.name.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf index 774e45b009..fb11dfe0e4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.authormarkuptext.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf index a9d1b7c5bd..67f443b3cc 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.always.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf index 5d3cfe194f..f84a04b533 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.ifneeded.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf index c601a4aea9..0827a3fdec 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.none.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf index c2804ee36a..5bad61f4fa 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.commandnameprefix.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf index b5791d9e27..0a4892da73 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.footnote.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf index a46720e9d2..ce0b7f363c 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.margin.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf index b1b086b532..d381ef6673 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.todo.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf index 634495f0cc..7e0ed13aed 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.commentmarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.wrong.pdf new file mode 100644 index 0000000000..9d4b7b82a7 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.commentmarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf b/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf index 2ef1544682..d5544acad1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf and b/macros/latex/contrib/changes/examples/changes.example.defaultcolor.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf index 84159d21ad..ce49d867fd 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.bf.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf index 60c656e3e2..7fc1f98632 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.colored.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf index 7484d2369e..0bb484a72d 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dashuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf index 3eb4edf507..9023118c91 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.dotuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf index 25f5db7c1e..0c681ba3cc 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.em.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf index f48ae8cf3d..43de825753 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.it.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf index b56242fd5d..b29b4ab93e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sl.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf index 2662f57833..cdd9fe5074 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.sout.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf index cb7cf60521..6bff407c02 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf index 4229f381ef..317e85615f 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf index ffd3db58bf..455ac2e596 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf index 788aa63201..8e37435fb0 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf index fabb36e19c..9e3403f0a4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf and b/macros/latex/contrib/changes/examples/changes.example.deletedmarkup.xout.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.draft.pdf b/macros/latex/contrib/changes/examples/changes.example.draft.pdf index eb1ed5b9b5..f5367acf62 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.draft.pdf and b/macros/latex/contrib/changes/examples/changes.example.draft.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.final.pdf b/macros/latex/contrib/changes/examples/changes.example.final.pdf index 9dc5b90c7d..9367a3ab84 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.final.pdf and b/macros/latex/contrib/changes/examples/changes.example.final.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf index c8b51542d1..6b3d3e4c7d 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.background.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf index bc6f9f0d5a..ca3d3f6de7 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uuline.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf index 08e7613f0a..5b97d2b2f1 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.uwave.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.wrong.pdf new file mode 100644 index 0000000000..a5ff1da6f0 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.highlightmarkup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.language.british.pdf b/macros/latex/contrib/changes/examples/changes.example.language.british.pdf new file mode 100644 index 0000000000..eb83c213b0 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.language.british.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.language.english.pdf b/macros/latex/contrib/changes/examples/changes.example.language.english.pdf new file mode 100644 index 0000000000..f7646a44d1 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.language.english.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.language.french.pdf b/macros/latex/contrib/changes/examples/changes.example.language.french.pdf new file mode 100644 index 0000000000..aead17f817 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.language.french.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.language.german.pdf b/macros/latex/contrib/changes/examples/changes.example.language.german.pdf new file mode 100644 index 0000000000..a6dafea904 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.language.german.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.language.italian.pdf b/macros/latex/contrib/changes/examples/changes.example.language.italian.pdf new file mode 100644 index 0000000000..d3307197de Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.language.italian.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.language.ngerman.pdf b/macros/latex/contrib/changes/examples/changes.example.language.ngerman.pdf new file mode 100644 index 0000000000..cc8e0df3f1 Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.language.ngerman.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf index 8006af28ef..31711d28ff 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.all.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf index d1b193ef31..63ee73bd04 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.compactsummary.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf index d6d66a399f..58af7d6120 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.list.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf index f4a59d64fd..9bf7089513 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.show.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf index 368186ea21..97bc88e8e2 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.summary.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf index c603acac49..3b80440f49 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.title.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf index 3b6047a8ce..0d1d3d89ba 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.listofchanges.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf index 1ba2c88dab..f5cf815a2e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.bfit.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf index df7f3a3191..84fb0874d0 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.default.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf index 2938d22d1c..1033e78620 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.nocolor.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf index b8401131e6..d5d95e6730 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.underlined.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf b/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf index dcee199e7e..72fedbbb78 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf and b/macros/latex/contrib/changes/examples/changes.example.markup.wrong.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.package.hyperref.pdf b/macros/latex/contrib/changes/examples/changes.example.package.hyperref.pdf index 24b246e270..b04759d782 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.package.hyperref.pdf and b/macros/latex/contrib/changes/examples/changes.example.package.hyperref.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf index 00dede22da..b1f73c57a5 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.todonotes.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf index 544952b9ce..b38b4d563f 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.truncate.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf index eea20bfa20..bc5cff239e 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.ulem.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf b/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf index e7d2afb04e..531b08ec38 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf and b/macros/latex/contrib/changes/examples/changes.example.packageoptions.xcolor.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf b/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf index 4db48cba0c..3b79f9db64 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf and b/macros/latex/contrib/changes/examples/changes.example.screenshot.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf index 09333a4a5a..74b11dfb78 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setaddedmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setanonymousname.pdf b/macros/latex/contrib/changes/examples/changes.example.setanonymousname.pdf new file mode 100644 index 0000000000..50f7cbf56f Binary files /dev/null and b/macros/latex/contrib/changes/examples/changes.example.setanonymousname.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf index 346314b016..6c791b0ab4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setauthormarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf b/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf index 7c550e13b8..0f21515414 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf and b/macros/latex/contrib/changes/examples/changes.example.setauthormarkupposition.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf b/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf index 8d2c09d293..a065d52b42 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf and b/macros/latex/contrib/changes/examples/changes.example.setauthormarkuptext.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf index 9c80d8ee29..e2d6ca9bf0 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setcommentmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf index 86daf81a81..7ec7d0be72 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.setdeletedmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf b/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf index d035b74730..c3675f55c3 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf and b/macros/latex/contrib/changes/examples/changes.example.sethighlightmarkup.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setlocextension.pdf b/macros/latex/contrib/changes/examples/changes.example.setlocextension.pdf index 7528a69a2c..22e59da403 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setlocextension.pdf and b/macros/latex/contrib/changes/examples/changes.example.setlocextension.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf b/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf index d3f15eba92..c0174f69c0 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf and b/macros/latex/contrib/changes/examples/changes.example.setsocextension.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf b/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf index 3404949795..f9d759a6a4 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf and b/macros/latex/contrib/changes/examples/changes.example.setsummarytowidth.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf b/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf index 0fe0ffb611..0ee1e39089 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf and b/macros/latex/contrib/changes/examples/changes.example.setsummarywidth.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf b/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf index 7a9e0928a6..c045054469 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf and b/macros/latex/contrib/changes/examples/changes.example.settruncatewidth.pdf differ diff --git a/macros/latex/contrib/changes/examples/changes.example.simple.pdf b/macros/latex/contrib/changes/examples/changes.example.simple.pdf index be1660fa7d..81e1bc5876 100644 Binary files a/macros/latex/contrib/changes/examples/changes.example.simple.pdf and b/macros/latex/contrib/changes/examples/changes.example.simple.pdf differ diff --git a/macros/latex/contrib/changes/regression.dtx b/macros/latex/contrib/changes/regression.dtx index a3fe6c903a..eae6249a42 100644 --- a/macros/latex/contrib/changes/regression.dtx +++ b/macros/latex/contrib/changes/regression.dtx @@ -44,9 +44,12 @@ % \end{macrocode} % % \begin{macrocode} -%<*regression:draft> +%<*regression:draft:id> +\usepackage[authormarkuptext=id]{changes} +% +%<*regression:draft:name> \usepackage[authormarkuptext=name]{changes} -% +% %<*regression:final> \usepackage[final]{changes} % @@ -62,7 +65,7 @@ % \begin{macrocode} \begin{document} -%<*regression:draft> +%<*regression:draft:id|regression:draft:name> \section{Test empty string} Anonymous author should have no space before the \added[comment=no space]{number} in the comment. @@ -72,7 +75,7 @@ \listofchanges[title={List of changes should not contain empty author brackets}] \listofchanges[style=compactsummary, title={Summary should not contain empty author brackets either}] -% +% %<*regression:final> \section{Compile errors to avoid} diff --git a/macros/latex/contrib/changes/userdoc/changes.de.tex b/macros/latex/contrib/changes/userdoc/changes.de.tex index 924e951fd9..8eb92131cb 100644 --- a/macros/latex/contrib/changes/userdoc/changes.de.tex +++ b/macros/latex/contrib/changes/userdoc/changes.de.tex @@ -840,6 +840,18 @@ Die folgenden Werte für \emph{authormarkuptext} sind definiert: \chexample{setauthormarkuptext} +\chnewcmd{setanonymousname} + +\chinline{setanonymousname} + +Der Befehl \doccommand{setanonymousname} legt den Namen des anonymen Autors fest. +Der Standardname ist das sprachabhängige Äquivalent zu "`Anonym"'. + +Diese Option ist \zB hilfreich, wenn man die/der einzige Autor:in ist und den Namen bei den Änderungen angezeigt haben will. + +\chexample{setanonymousname} + + \chnewcmd{settruncatewidth} @@ -1041,6 +1053,7 @@ Die Autorinnen und Autoren sind in alphabetischer Reihenfolge: \item Fischer, Ulrike \item Giovannini, Daniele \item Kleinod, Ekkart + \item Le Garrec, Vincent \item Mittelbach, Frank \item Richardson, Alexander \item Voss, Herbert diff --git a/macros/latex/contrib/changes/userdoc/changes.en.tex b/macros/latex/contrib/changes/userdoc/changes.en.tex index 9b621a39e3..d919249d34 100644 --- a/macros/latex/contrib/changes/userdoc/changes.en.tex +++ b/macros/latex/contrib/changes/userdoc/changes.en.tex @@ -840,6 +840,17 @@ The following values for \emph{authormarkuptext} are defined: \chexample{setauthormarkuptext} +\chnewcmd{setanonymousname} + +\chinline{setanonymousname} + +The command \doccommand{setanonymousname} sets the anonymous author's name. +The default name is the language dependent equivalent of ``anonymous''. + +This option is helpful if you are the only author and you want your name to be displayed at the changes. + +\chexample{setanonymousname} + \chnewcmd{settruncatewidth} @@ -1042,6 +1053,7 @@ The authors are (in alphabetical order): \item Fischer, Ulrike \item Giovannini, Daniele \item Kleinod, Ekkart + \item Le Garrec, Vincent \item Mittelbach, Frank \item Richardson, Alexander \item Voss, Herbert diff --git a/macros/latex/contrib/changes/userdoc/setanonymousname_ex.tex b/macros/latex/contrib/changes/userdoc/setanonymousname_ex.tex new file mode 100644 index 0000000000..1bed829efc --- /dev/null +++ b/macros/latex/contrib/changes/userdoc/setanonymousname_ex.tex @@ -0,0 +1,2 @@ +\setanonymousname{Anonymous author} +\setanonymousname{My name} diff --git a/macros/latex/contrib/changes/userdoc/setanonymousname_in.tex b/macros/latex/contrib/changes/userdoc/setanonymousname_in.tex new file mode 100644 index 0000000000..a56bc682c8 --- /dev/null +++ b/macros/latex/contrib/changes/userdoc/setanonymousname_in.tex @@ -0,0 +1 @@ +\setanonymousname{} diff --git a/macros/latex/contrib/huawei/DEPENDS.txt b/macros/latex/contrib/huawei/DEPENDS.txt index a4e9941327..bcf146a97f 100644 --- a/macros/latex/contrib/huawei/DEPENDS.txt +++ b/macros/latex/contrib/huawei/DEPENDS.txt @@ -13,12 +13,12 @@ hard makecell hard footmisc hard graphicx hard array +hard hyperref hard currfile hard enumitem hard microtype hard wrapfig hard lastpage -hard xfp hard setspace hard biblatex hard xcolor diff --git a/macros/latex/contrib/huawei/README.md b/macros/latex/contrib/huawei/README.md index ad89256331..8e3278065e 100644 --- a/macros/latex/contrib/huawei/README.md +++ b/macros/latex/contrib/huawei/README.md @@ -1,4 +1,4 @@ -[![make](https://github.com/yegor256/huawei.cls/actions/workflows/make.yml/badge.svg)](https://github.com/yegor256/huawei.cls/actions/workflows/make.yml) +[![make](https://github.com/yegor256/huawei.cls/actions/workflows/latexmk.yml/badge.svg)](https://github.com/yegor256/huawei.cls/actions/workflows/latexmk.yml) [![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/huawei.cls/blob/master/LICENSE.txt) Disclaimer: This is **NOT** a product of Huawei Technologies Co., Ltd. diff --git a/macros/latex/contrib/huawei/huawei.cls b/macros/latex/contrib/huawei/huawei.cls index fa0ce1537c..87c562736c 100644 --- a/macros/latex/contrib/huawei/huawei.cls +++ b/macros/latex/contrib/huawei/huawei.cls @@ -21,7 +21,7 @@ % SOFTWARE. \NeedsTeXFormat{LaTeX2e} -\ProvidesClass{huawei}[2021/07/05 0.7.2 Template for Huawei Documents] +\ProvidesClass{huawei}[2021/07/07 0.7.3 Template for Huawei Documents] \newif\ifnosecurity \DeclareOption{nosecurity}{\nosecuritytrue} @@ -66,20 +66,15 @@ \setlength{\footnotesep}{2pt} \RequirePackage{graphicx} \RequirePackage{array} +\RequirePackage[hidelinks]{hyperref} % to enable \pageref* command \RequirePackage[abspath]{currfile} \RequirePackage{enumitem} \setlist{nosep} \RequirePackage{microtype} \RequirePackage{wrapfig} \RequirePackage{lastpage} -\RequirePackage{xfp} % for \setrelativestretch \RequirePackage{setspace} \setstretch{1.08} - \newcommand{\setrelativestretch}[1]{% - \begingroup\edef\x{\endgroup% - \noexpand\setstretch{\fpeval{(#1)*(\baselinestretch)}}% - }\x% - } \RequirePackage[maxnames=1,minnames=1,natbib=true,citestyle=numeric,bibstyle=numeric,doi=false,url=false,isbn=false,isbn=false]{biblatex} \RequirePackage[table]{xcolor} \definecolor{huawei-red}{HTML}{CF0A2C} @@ -103,7 +98,7 @@ % Custom commands \newcommand\nospell[1]{#1} -\newcommand\headers[1]{\setrelativestretch{0.8}{\small\sffamily\color{gray}#1}} +\newcommand\headers[1]{\setstretch{0.8}{\small\sffamily\color{gray}#1\par}} \newcommand\tbd[1]{{\color{red}#1}} \newcommand\crumb[2]{\begin{minipage}{\columnwidth}\raggedright\textsc{#1}:\\#2\end{minipage}\vspace{4pt}} @@ -252,7 +247,10 @@ } \newcommand\PrintDisclaimer{% - \justify\vspace*{\fill}\setrelativestretch{0.55}{{\sffamily\scriptsize\color{gray!50!black}% + \justify\vspace*{\fill}% + \begingroup% + \setstretch{0.55}% + \sffamily\scriptsize\color{gray!50!black}% \textbf{Disclaimer}: The opinions expressed in this document are in good faith and while every care has been taken in preparing it, \ifnobrand% @@ -270,9 +268,15 @@ \fi, its subsidiaries, the directors, employees and agents cannot be held liable for the use of and reliance of the opinions, estimates, forecasts and - findings in these documents.}}} + findings in these documents. + \par + \endgroup% +} \newcommand\PrintFirstPage[1]{ + \iflandscape\else + \PackageError{huawei}{It's allowed to use PrintFirstPage only in landscape mode}{Read huawei.pdf for more information} + \fi \LeftHuaweiBar{} \def\param{#1}% \ifx\param\empty\else @@ -281,14 +285,17 @@ \fi \vspace*{0.5in} \maketitle - \iflandscape\ifnocover\else + \ifnocover\else \begin{textblock}{14}[1,1](14,14) \raggedleft\includegraphics[height=3.6in]{huawei-cover-picture.pdf} \end{textblock} - \fi\fi + \fi } \newcommand\PrintLastPage{ + \iflandscape\else + \PackageError{huawei}{It's allowed to use PrintLastPage only in landscape mode}{Read huawei.pdf for more information} + \fi \newpage \vspace*{1in} \begin{center} @@ -331,14 +338,14 @@ } \newcommand\PrintBibliography{ - \setlength\bibitemsep{0pt} + \setlength\bibitemsep{3pt} \AtNextBibliography{\small} \newpage \raggedright \iflandscape - \begin{multicols}{3}\setrelativestretch{1.0}{\printbibliography}\end{multicols} + \begin{multicols}{3}\setstretch{0.95}\printbibliography\end{multicols} \else - \begin{multicols}{2}\setrelativestretch{1.0}{\printbibliography}\end{multicols} + \begin{multicols}{2}\setstretch{0.95}\printbibliography\end{multicols} \fi } diff --git a/macros/latex/contrib/huawei/huawei.pdf b/macros/latex/contrib/huawei/huawei.pdf index 63a83ce57d..0cd923a93e 100644 Binary files a/macros/latex/contrib/huawei/huawei.pdf and b/macros/latex/contrib/huawei/huawei.pdf differ diff --git a/macros/latex/contrib/huawei/huawei.tex b/macros/latex/contrib/huawei/huawei.tex index 8bf1d94619..f0607bf4ae 100644 --- a/macros/latex/contrib/huawei/huawei.tex +++ b/macros/latex/contrib/huawei/huawei.tex @@ -29,9 +29,9 @@ \begin{document} \maketitle -\ff{Version: 0.7.2} +\ff{Version: 0.7.3} \newline -\ff{Date: 2021/07/05} +\ff{Date: 2021/07/07} \section{Overview} diff --git a/macros/latex/contrib/huawei/samples/huawei-cfp.tex b/macros/latex/contrib/huawei/samples/huawei-cfp.tex index 5811852155..733cec3751 100644 --- a/macros/latex/contrib/huawei/samples/huawei-cfp.tex +++ b/macros/latex/contrib/huawei/samples/huawei-cfp.tex @@ -20,7 +20,7 @@ % OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE % SOFTWARE. -\documentclass[nobrand,nosecurity,anonymous,nopaging,authordraft]{../huawei} +\documentclass[nobrand,nosecurity,nopaging,authordraft]{../huawei} \usepackage{ffcode} \renewcommand*\thetitle{Test Call for Proposal} \renewcommand*\theauthor{Yegor Bugayenko} diff --git a/macros/latex/contrib/tudscr/README.md b/macros/latex/contrib/tudscr/README.md index 247b4ed81c..165e4116c2 100644 --- a/macros/latex/contrib/tudscr/README.md +++ b/macros/latex/contrib/tudscr/README.md @@ -4,15 +4,16 @@ Copyright (C) Falk Hanisch , 2012-2021 - tudscr 2021/03/30 v2.06l + tudscr 2021/07/06 v2.06m - The current release is shiped via CTAN: https://www.ctan.org/pkg/tudscr + This material is subject to the LaTeX Project Public License version 1.3c + or later. See http://www.latex-project.org/lppl.txt for details. ---------------------------------------------------------------------------- - This material is subject to the LaTeX Project Public License version 1.3c - or later. See http://www.latex-project.org/lppl.txt for details. - English text below. +The current release is shiped via CTAN: https://www.ctan.org/pkg/tudscr + +**English text below** ---------------------------------------------------------------------------- @@ -57,6 +58,9 @@ Das Bundle beinhaltet: Versionen --------- +**v2.06m** (2021/07/06) ++ Fix eines internen Fehlers mit LuaLaTeX + **v2.06l** (2021/03/30) + Fix für Festlegung des Seitenstils in der Präambel + Fix für das Durchreichen von Optionen mit LaTeX 2021/05/01 @@ -276,6 +280,9 @@ The bundle offers: Versions -------- +**v2.06m** (2021/07/06) ++ bug fix for an internal error with LuaLaTeX + **v2.06l** (2021/03/30) + bug fix for defining the page style in the preamble + bug fix for passing options with LaTeX 2021/05/01 diff --git a/macros/latex/contrib/tudscr/doc/LICENSE.md b/macros/latex/contrib/tudscr/doc/LICENSE.md index a0a5ecaef3..33bfa98d87 100644 --- a/macros/latex/contrib/tudscr/doc/LICENSE.md +++ b/macros/latex/contrib/tudscr/doc/LICENSE.md @@ -13,6 +13,10 @@ or later and of this work. This work has the LPPL maintenance status "author-maintained". The current maintainer and author of this work is Falk Hanisch. + + However, only members of the Technische Universität Dresden are permitted + to publish documents in the corporate design, in particular with the use + of an official logo. ---------------------------------------------------------------------------- @@ -23,5 +27,9 @@ oder später und dieses Werks. Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained", wird somit allein durch den Autor verwaltet. Der aktuelle Verwalter und Autor dieses Werkes ist Falk Hanisch. + + Jedoch ist es lediglich Angehörigen der Technischen Universität Dresden + gestattet, Dokumente im Corporate Design insbesondere mit der Verwendung + eines offiziellen Logos zu veröffentlichen. ---------------------------------------------------------------------------- diff --git a/macros/latex/contrib/tudscr/doc/tudscr.pdf b/macros/latex/contrib/tudscr/doc/tudscr.pdf index 3dedc273b2..b3350d86d7 100644 Binary files a/macros/latex/contrib/tudscr/doc/tudscr.pdf and b/macros/latex/contrib/tudscr/doc/tudscr.pdf differ diff --git a/macros/latex/contrib/tudscr/doc/tudscr_print.pdf b/macros/latex/contrib/tudscr/doc/tudscr_print.pdf index c9cf629f61..47312ee22f 100644 Binary files a/macros/latex/contrib/tudscr/doc/tudscr_print.pdf and b/macros/latex/contrib/tudscr/doc/tudscr_print.pdf differ diff --git a/macros/latex/contrib/tudscr/doc/tudscrsource.pdf b/macros/latex/contrib/tudscr/doc/tudscrsource.pdf index 7b884e78d7..044f9c05f6 100644 Binary files a/macros/latex/contrib/tudscr/doc/tudscrsource.pdf and b/macros/latex/contrib/tudscr/doc/tudscrsource.pdf differ diff --git a/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf b/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf index 602678764c..3ed0f3478c 100644 Binary files a/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf and b/macros/latex/contrib/tudscr/doc/tutorials/mathswap.pdf differ diff --git a/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf b/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf index ddcc145e9d..a4d5a5d894 100644 Binary files a/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf and b/macros/latex/contrib/tudscr/doc/tutorials/mathtype.pdf differ diff --git a/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf b/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf index 825173e084..b0a3e429c6 100644 Binary files a/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf and b/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf differ diff --git a/macros/latex/contrib/tudscr/source/doc/tudscr-installation.tex b/macros/latex/contrib/tudscr/source/doc/tudscr-installation.tex index 2dd8d79199..d139461ac2 100644 --- a/macros/latex/contrib/tudscr/source/doc/tudscr-installation.tex +++ b/macros/latex/contrib/tudscr/source/doc/tudscr-installation.tex @@ -160,11 +160,11 @@ benötigt. Für unixoide Betriebssysteme sind es die Dateien aus \hrfn{\Download{\vTUDScript/TUD-Script\_\vTUDScript\_Unix.zip}}% {\File*{TUD-Script\_\vTUDScript\_Unix.zip}}. -Beim Ausführen des spezifischen Installationsskripts~-- für Windows -\File{tudscr\_\vTUDScript\_install.bat} respektive für unixoide Betriebssysteme -\File{tudscr\_\vTUDScript\_install.sh}~-- werden alle Dateien in das lokale -Nutzerverzeichnis der jeweiligen Distribution installiert, falls kein anderes -Verzeichnis explizit angegeben wird. +Beim Ausführen des spezifischen Installationsskripts~-- +\File{tudscr\_\vTUDScript\_install.bat} für Windows respektive +\File{tudscr\_\vTUDScript\_install.sh} für unixoide Betriebssysteme~-- werden +alle Dateien in das lokale Nutzerverzeichnis der jeweiligen Distribution +installiert, falls kein anderes Verzeichnis explizit angegeben wird. \Attention{% In jedem Fall sollte vor der Ausführung des Installationsskripts ein Update der \hologo{LaTeX}"=Distribution durchgeführt werden. Dies gilt insbesondere diff --git a/macros/latex/contrib/tudscr/source/doc/tudscr.tex b/macros/latex/contrib/tudscr/source/doc/tudscr.tex index 6e9278693b..58cb34423f 100644 --- a/macros/latex/contrib/tudscr/source/doc/tudscr.tex +++ b/macros/latex/contrib/tudscr/source/doc/tudscr.tex @@ -29,7 +29,7 @@ \endgroup% } \faculty{\cdurl} -\date{2021-03-30} +\date{2021-07-06} \author{% Falk Hanisch% \expandafter\emailaddress\expandafter{\tudscrmail}% diff --git a/macros/latex/contrib/tudscr/source/tudscr-comp.dtx b/macros/latex/contrib/tudscr/source/tudscr-comp.dtx index bb7341041b..64c5341700 100644 --- a/macros/latex/contrib/tudscr/source/tudscr-comp.dtx +++ b/macros/latex/contrib/tudscr/source/tudscr-comp.dtx @@ -1,4 +1,4 @@ -% \CheckSum{1459} +% \CheckSum{1460} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden @@ -52,7 +52,7 @@ % \fi % \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-comp.dtx}[2020/11/10 v2.06k TUD-Script\space% +\ProvidesFile{tudscr-comp.dtx}[2021/07/06 v2.06m TUD-Script\space% % % \iffalse % @@ -395,6 +395,8 @@ % \changes{v2.06k}{2020/11/10}{neu}^^A % \begin{macro}{\tud@v@2.06l} % \changes{v2.06l}{2021/03/30}{neu}^^A +% \begin{macro}{\tud@v@2.06m} +% \changes{v2.06m}{2021/07/06}{neu}^^A % \begin{macro}{\tud@v@last} % \changes{v2.02}{2014/08/22}{neu}^^A % \changes{v2.03}{2015/01/13}{angepasst}^^A @@ -443,9 +445,11 @@ \csdef{tud@v@2.06j}{4} \csdef{tud@v@2.06k}{4} \csdef{tud@v@2.06l}{4} +\csdef{tud@v@2.06m}{4} \csdef{tud@v@last}{4} % \end{macrocode} % \end{macro}^^A \tud@v@last +% \end{macro}^^A \tud@v@2.06m % \end{macro}^^A \tud@v@2.06l % \end{macro}^^A \tud@v@2.06k % \end{macro}^^A \tud@v@2.06j diff --git a/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx b/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx index 69ada7f5c2..507b9d0fd4 100644 --- a/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx +++ b/macros/latex/contrib/tudscr/source/tudscr-fonts.dtx @@ -1,4 +1,4 @@ -% \CheckSum{3183} +% \CheckSum{3161} % \iffalse meta-comment % % TUD-Script -- Corporate Design of Technische Universität Dresden @@ -52,7 +52,7 @@ \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi % \fi % -\ProvidesFile{tudscr-fonts.dtx}[2020/09/29 v2.06j TUD-Script\space% +\ProvidesFile{tudscr-fonts.dtx}[2021/07/06 v2.06m TUD-Script\space% % % \iffalse % @@ -483,7 +483,7 @@ \@tud@res@swatrue% \def\tud@res@a##1##2{% \@tud@res@swafalse% - \tud@cdfont@missing[##1]{##2}{\tud@cdmath@wrn}% + \tud@cdfont@missing[{##1}]{##2}{\tud@cdmath@wrn}% }% \def\tud@res@b##1##2{% \tud@if@fdfileexists{##1}{##2}{}{% @@ -1153,7 +1153,7 @@ % \begin{macrocode} \begingroup% \edef\tud@res@a{% - \noexpand\defaultfontfeatures[#1]{% + \noexpand\defaultfontfeatures[{#1}]{% NFSSFamily=#1,% Ligatures=TeX,% BoldFont={},% @@ -2635,16 +2635,16 @@ \tud@math@loop@greeks@lc{#1}% } \newcommand*\tud@math@loop@greeks@uc[1]{% - \@for\@tempa:={% + \forcsvlist#1{% Gamma,Delta,Theta,Lambda,Xi,Pi,Sigma,Upsilon,Phi,Psi,Omega% - }\do{\expandafter#1\expandafter{\@tempa}}% + }% } \newcommand*\tud@math@loop@greeks@lc[1]{% - \@for\@tempa:={% + \forcsvlist#1{% alpha,beta,gamma,delta,epsilon,zeta,eta,theta,iota,kappa,lambda,% mu,nu,xi,pi,rho,sigma,tau,upsilon,phi,chi,psi,omega,% varepsilon,vartheta,varpi,varrho,varsigma,varphi% - }\do{\expandafter#1\expandafter{\@tempa}}% + }% } % \end{macrocode} % \end{macro}^^A \tud@math@loop@greeks@lc @@ -2823,15 +2823,11 @@ \newcommand*\tud@math@map@@greeks[1]{% \ifcsundef{it#1}{% \@for\tud@res@a:={#1sl,sl#1,#1it}\do{% - \ifcsundef{\tud@res@a}{}{\csedef{it#1}{\csname\tud@res@a\endcsname}}% + \ifcsundef{\tud@res@a}{}{\csletcs{it#1}{\tud@res@a}}% }% }{}% - \ifcsundef{up#1}{% - \ifcsundef{#1up}{}{\csedef{up#1}{\csname#1up\endcsname}}% - }{}% - \ifcsundef{other#1}{% - \ifcsundef{#1other}{}{\csedef{other#1}{\csname#1other\endcsname}}% - }{}% + \ifcsundef{up#1}{\ifcsundef{#1up}{}{\csletcs{up#1}{#1up}}}{}% + \ifcsundef{other#1}{\ifcsundef{#1other}{}{\csletcs{other#1}{#1other}}}{}% } % \end{macrocode} % Einige Pakete stellen für griechische Majuskeln die Befehle \cs{var\dots} @@ -2840,13 +2836,11 @@ % ebenfalls ausgewertet und ggf. auf die \TUDScript-Nomenklatur abgebildet. % \begin{macrocode} \newcommand*\tud@math@map@@@greeks[1]{% - \ifcsundef{it#1}{% - \ifcsundef{var#1}{}{\csedef{it#1}{\csname var#1\endcsname}}% - }{}% + \ifcsundef{it#1}{\ifcsundef{var#1}{}{\csletcs{it#1}{var#1}}}{}% \ifcsundef{up#1}{% \tud@lowerstring\tud@res@a{#1}% \edef\tud@res@a{Up\tud@res@a}% - \ifcsundef{\tud@res@a}{}{\csedef{up#1}{\csname\tud@res@a\endcsname}}% + \ifcsundef{\tud@res@a}{}{\csletcs{up#1}{\tud@res@a}}% }{}% } % \end{macrocode} @@ -3589,6 +3583,7 @@ % \changes{v2.06}{2019/06/19}{neu}^^A % \begin{macro}{\tud@cdmath@declare@alias} % \changes{v2.06}{2019/06/19}{neu}^^A +% \changes{v2.06m}{2021/07/06}{\cs{csedef} durch \cs{csletcs} ersetzt}^^A % \begin{macro}{\tud@cdmath@symb@list} % \changes{v2.06}{2019/06/19}{neu}^^A % \begin{macro}{\tud@cdmath@declare@char} @@ -3614,9 +3609,9 @@ % \begin{macrocode} \newcommand*\tud@cdmath@declare@alias[2]{% \listeadd\tud@cdmath@symb@list{#1}% - \ifcsdef{tud@cdmath@symbol@#2}{% - \csedef{tud@cdmath@symbol@#1}{\csname tud@cdmath@symbol@#2\endcsname}% - }{}% + \ifcsundef{tud@cdmath@symbol@#2}{}{% + \csletcs{tud@cdmath@symbol@#1}{tud@cdmath@symbol@#2}% + }% } \newcommand*\tud@cdmath@char@list{} \newcommand*\tud@cdmath@declare@char[4]{% @@ -3635,7 +3630,7 @@ \endgroup% \noexpand\DeclareMathSymbol% {\csname tud@cdmath@symbol@#1\endcsname}% - {\etex@unexpanded{#2}}{#3}{#4}% + {\unexpanded{#2}}{#3}{#4}% }% \tud@res@a% } @@ -3689,20 +3684,20 @@ % gesichert und später wiederhergestellt. Andernfalls wird er wieder undefinert % gesetzt. % \begin{macrocode} - \ifcsdef{#1}{% + \ifcsundef{#1}{% + \addto@hook\tud@cdmath@symbols@toks{\csundef{#1}}% + }{% \tud@cs@store{#1}% \addto@hook\tud@cdmath@symbols@toks{\tud@cs@restore{#1}}% - }{% - \addto@hook\tud@cdmath@symbols@toks{\csundef{#1}}% }% % \end{macrocode} % Nur wenn ein gewünschtes Symbol auch existiert, wird es gesetzt. Damit können % Symbole für \opt{cdmath=true} auch gezielt undefiniert gesetzt werden. % \begin{macrocode} - \ifcsdef{tud@cdmath@symbol@#1}{% - \tud@cs@letltx{#1}{tud@cdmath@symbol@#1}% - }{% + \ifcsundef{tud@cdmath@symbol@#1}{% \csundef{#1}% + }{% + \tud@cs@letltx{#1}{tud@cdmath@symbol@#1}% }% } % \end{macrocode} diff --git a/macros/latex/contrib/tudscr/source/tudscr-misc.dtx b/macros/latex/contrib/tudscr/source/tudscr-misc.dtx index 81ead2899d..46d3ba4f20 100644 --- a/macros/latex/contrib/tudscr/source/tudscr-misc.dtx +++ b/macros/latex/contrib/tudscr/source/tudscr-misc.dtx @@ -52,7 +52,7 @@ % \fi % \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{tudscr-misc.dtx}[2021/03/30 v2.06l TUD-Script\space% +\ProvidesFile{tudscr-misc.dtx}[2021/07/06 v2.06m TUD-Script\space% (miscellaneous)% ] % @@ -560,7 +560,10 @@ \DeclareOption*{\expandafter\KOMAoptions\expandafter{\CurrentOption}} % %<*fixfonts> -\DeclareOption*{\expandafter\PassOptionsToPackage\expandafter{\CurrentOption}{tudscrfonts}} +\DeclareOption*{% + \expandafter\PassOptionsToPackage\expandafter{\CurrentOption}% + {tudscrfonts}% +} % %<*comp> \DeclareOption*{\expandafter\TUDoptions\expandafter{\CurrentOption}} @@ -571,7 +574,10 @@ \DeclareOption*{\tud@x@scr@checkoptions} % %<*inherit> -\DeclareOption*{\expandafter\PassOptionsToClass\expandafter{\CurrentOption}{\TUD@Class@Parent}} +\DeclareOption*{% + \expandafter\PassOptionsToClass\expandafter{\CurrentOption}% + {\TUD@Class@Parent}% +} % % % \end{macrocode} diff --git a/macros/latex/contrib/tudscr/source/tudscr-version.dtx b/macros/latex/contrib/tudscr/source/tudscr-version.dtx index bbc0e49aa0..0be14bde10 100644 --- a/macros/latex/contrib/tudscr/source/tudscr-version.dtx +++ b/macros/latex/contrib/tudscr/source/tudscr-version.dtx @@ -128,7 +128,7 @@ %<*!(package|class)> \fi % - \TUD@Version@Check{2021/03/30 v2.06l TUD-Script} + \TUD@Version@Check{2021/07/06 v2.06m TUD-Script} \endgroup % \end{macrocode} % \end{macro}^^A \TUDScriptVersionNumber diff --git a/macros/latex/contrib/upmethodology/doc/upmethodology-doc.pdf b/macros/latex/contrib/upmethodology/doc/upmethodology-doc.pdf index e76b760ca8..59f9590653 100644 Binary files a/macros/latex/contrib/upmethodology/doc/upmethodology-doc.pdf and b/macros/latex/contrib/upmethodology/doc/upmethodology-doc.pdf differ diff --git a/macros/latex/contrib/upmethodology/doc/upmethodology-doc.tex b/macros/latex/contrib/upmethodology/doc/upmethodology-doc.tex index 9f2f0fcf6e..abd67b3bd8 100644 --- a/macros/latex/contrib/upmethodology/doc/upmethodology-doc.tex +++ b/macros/latex/contrib/upmethodology/doc/upmethodology-doc.tex @@ -11,6 +11,7 @@ \incsubversion{\makedate{04}{08}{2019}}{Add 'graphicspathcontext' option.}{\upmpublic} \incversion{\makedate{17}{09}{2019}}{Add class options to include optional packages.}{\upmpublic} \incversion{\makedate{06}{04}{2020}}{Add explainations for \texttt{{\textbackslash}Append} and \texttt{{\textbackslash}setdocumentpurpose}.}{\upmpublic} +\incversion{\makedate{03}{06}{2021}}{Add emphazing box with titles.}{\upmpublic} %\incversion{\makedate{17}{09}{2019}}{Add the documentation for the \texttt{upmethodology-spec} package.}{\upmpublic} \addauthorvalidator*[galland@arakhne.org]{St{\'e}phane}{Galland}{Original Author} @@ -1402,11 +1403,58 @@ produces: This is an emphazed text. \end{emphbox} +\paragraph{Emphazing Box with a Title:} Three additional boxes are provided. All of them are output a title, and has a different background color: \\ +\texttt{{\textbackslash}begin\{titleemphbox\}[width]\{title\} text {\textbackslash}end\{titleemphbox\}} \\ +\texttt{{\textbackslash}begin\{titleemphbox2\}[width]\{title\} text {\textbackslash}end\{titleemphbox2\}} \\ +\texttt{{\textbackslash}begin\{titleemphbox3\}[width]\{title\} text {\textbackslash}end\{titleemphbox3\}} + +The following \LaTeX\ code: +\begin{verbatim} +\begin{titleemphbox}[.7\linewidth]{The title} +This is an emphazed text. +\end{titleemphbox} +\end{verbatim} +produces: + +\begin{titleemphbox}[.7\linewidth]{The title} +This is an emphazed text. +\end{titleemphbox} + + +The following \LaTeX\ code: +\begin{verbatim} +\begin{titleemphbox2}[.7\linewidth]{The title} +This is an emphazed text. +\end{titleemphbox2} +\end{verbatim} +produces: + +\begin{titleemphbox2}[.7\linewidth]{The title} +This is an emphazed text. +\end{titleemphbox2} + + +The following \LaTeX\ code: +\begin{verbatim} +\begin{titleemphbox3}[.7\linewidth]{The title} +This is an emphazed text. +\end{titleemphbox3} +\end{verbatim} +produces: + +\begin{titleemphbox3}[.7\linewidth]{The title} +This is an emphazed text. +\end{titleemphbox3} + + + \paragraph{Change the colors of the emphazing box:} You could change the colors of the \texttt{emphbox} environment by redefining the colors below with one of the macros \texttt{{\textbackslash}definecolor} or \texttt{{\textbackslash}colorlet}: \begin{itemize} \item \texttt{emphboxbackground} is the color of the background of the environment; \item \texttt{emphboxborder} is the color of the frame; \item \texttt{emphboxtext} is the color of the text in the body of the environment. +\item \texttt{emphboxbackgroundb} is the color of the background of the second environment with title; +\item \texttt{emphboxbackgroundc} is the color of the background of the third environment with title; \end{itemize} \paragraph{Example of color redefinition:} The following \LaTeX\ code: diff --git a/macros/latex/contrib/upmethodology/src/UPMVERSION.def b/macros/latex/contrib/upmethodology/src/UPMVERSION.def index 571ec47939..acfca6c74f 100644 --- a/macros/latex/contrib/upmethodology/src/UPMVERSION.def +++ b/macros/latex/contrib/upmethodology/src/UPMVERSION.def @@ -1 +1 @@ -\def\UPMVERSION{20200406} +\def\UPMVERSION{20210708} diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-backpage.sty b/macros/latex/contrib/upmethodology/src/upmethodology-backpage.sty index 32df29b7fc..daa22683fd 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-backpage.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-backpage.sty @@ -1,6 +1,6 @@ % Back page for Unified Process Methodology % -% Copyright (c) 2009-2013 Stephane GALLAND +% Copyright (c) 2009-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -17,7 +17,7 @@ % write to the Free Software Foundation, Inc., 59 Temple Place - Suite % 330, Boston, MA 02111-1307, USA. -\global\edef\upm@package@bp@ver{2013/12/14} +\global\edef\upm@package@bp@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-backpage}[\upm@package@bp@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-code.sty b/macros/latex/contrib/upmethodology/src/upmethodology-code.sty index 470a1d3d59..9dfe0c8e68 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-code.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-code.sty @@ -1,6 +1,6 @@ % Source Code Description for Unified Process Methodology % -% Copyright (c) 2006-2007 Stephane GALLAND +% Copyright (c) 2006-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -22,7 +22,7 @@ % 2009-10-30 Clean code. % -\global\edef\upm@package@code@ver{2009/10/30} +\global\edef\upm@package@code@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-code}[\upm@package@code@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-document.cls b/macros/latex/contrib/upmethodology/src/upmethodology-document.cls index 735ffbae2a..4572a98341 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-document.cls +++ b/macros/latex/contrib/upmethodology/src/upmethodology-document.cls @@ -1,6 +1,6 @@ % Document class for Unified Process Methodology % -% Copyright (c) 2014 Stephane GALLAND +% Copyright (c) 2014-21 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -17,7 +17,7 @@ % write to the Free Software Foundation, Inc., 59 Temple Place - Suite % 330, Boston, MA 02111-1307, USA. -\global\edef\upm@package@docclazz@ver{2019/09/17} +\global\edef\upm@package@docclazz@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{upmethodology-document}[\upm@package@docclazz@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-document.sty b/macros/latex/contrib/upmethodology/src/upmethodology-document.sty index f3deda16b8..fcffc37a41 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-document.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-document.sty @@ -1,6 +1,6 @@ % Package for Unified Process Methodology's documents % -% Copyright (c) 2006-2020 Stephane GALLAND +% Copyright (c) 2006-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -17,7 +17,7 @@ % write to the Free Software Foundation, Inc., 59 Temple Place - Suite % 330, Boston, MA 02111-1307, USA. -\global\edef\upm@package@doc@ver{2020/04/06} +\global\edef\upm@package@doc@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-document}[\upm@package@doc@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-extension.sty b/macros/latex/contrib/upmethodology/src/upmethodology-extension.sty index f70441df7b..2aa559ab7e 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-extension.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-extension.sty @@ -1,6 +1,6 @@ % Package for Unified Process Methodology's extensions % -% Copyright (c) 2006-2020 Stephane GALLAND +% Copyright (c) 2006-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -18,7 +18,7 @@ % 330, Boston, MA 02111-1307, USA. % -\global\edef\upm@package@ext@ver{2020/04/06} +\global\edef\upm@package@ext@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-extension}[\upm@package@ext@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-fmt.sty b/macros/latex/contrib/upmethodology/src/upmethodology-fmt.sty index 776022789d..bb28d2ce6c 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-fmt.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-fmt.sty @@ -1,6 +1,6 @@ % Layout and Pagraph Format for Unified Process Methodology % -% Copyright (c) 2006-2009, 2012-2019 Stephane GALLAND +% Copyright (c) 2006-2009, 2012-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -17,7 +17,7 @@ % write to the Free Software Foundation, Inc., 59 Temple Place - Suite % 330, Boston, MA 02111-1307, USA. -\global\edef\upm@package@fmt@ver{2019/09/28} +\global\edef\upm@package@fmt@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-fmt}[\upm@package@fmt@ver] @@ -1536,12 +1536,53 @@ \colorlet{emphboxbackground}{backtableheader} \colorlet{emphboxborder}{fronttableheader} \colorlet{emphboxtext}{fronttableheader} +\colorlet{emphboxbackgroundb}{yellow!7} +\colorlet{emphboxbackgroundc}{green!10} +%----- +% Draw an emph box without title +% [#1]: width of the box (linewidth by default) \NewEnviron{emphbox}[1][\linewidth]{% \begin{framedcolorminipage}{#1}{emphboxborder}{emphboxbackground}% \centering\color{emphboxtext}\BODY% \end{framedcolorminipage}% } +%----- +% Draw an emph box with title +% [#1]: width of the box (linewidth by default) +% #2: text of the title +\NewEnviron{titleemphbox}[2][\linewidth]{% + \begin{framedcolorminipage}{#1}{emphboxborder}{emphboxbackground}% + \centering\color{emphboxtext}% + \vspace{.25cm}\uline{\textbf{#2}}\\[.25cm]% + \raggedright\BODY\vspace{.25cm}% + \end{framedcolorminipage}\\[.4cm]% +} + +%----- +% Draw an emph box without title with the second background color +% [#1]: width of the box (linewidth by default) +% #2: text of the title +\NewEnviron{titleemphbox2}[2][\linewidth]{% + \begin{framedcolorminipage}{#1}{emphboxborder}{emphboxbackgroundb}% + \centering\color{emphboxtext}% + \vspace{.25cm}\uline{\textbf{#2}}\\[.25cm]% + \raggedright\BODY\vspace{.25cm}% + \end{framedcolorminipage}\\[.4cm]% +} + +%----- +% Draw an emph box without title with the third background color +% [#1]: width of the box (linewidth by default) +% #2: text of the title +\NewEnviron{titleemphbox3}[2][\linewidth]{% + \begin{framedcolorminipage}{#1}{emphboxborder}{emphboxbackgroundc}% + \centering\color{emphboxtext}% + \vspace{.25cm}\uline{\textbf{#2}}\\[.25cm]% + \raggedright\BODY\vspace{.25cm}% + \end{framedcolorminipage}\\[.4cm]% +} + \endinput diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-frontpage.sty b/macros/latex/contrib/upmethodology/src/upmethodology-frontpage.sty index 3033ce02fe..d5175e1bc8 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-frontpage.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-frontpage.sty @@ -1,6 +1,6 @@ % Front page for Unified Process Methodology % -% Copyright (c) 2006-2015 Stephane GALLAND +% Copyright (c) 2006-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -18,7 +18,7 @@ % 330, Boston, MA 02111-1307, USA. % -\global\edef\upm@package@fp@ver{2017/08/08} +\global\edef\upm@package@fp@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-frontpage}[\upm@package@fp@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-p-common.sty b/macros/latex/contrib/upmethodology/src/upmethodology-p-common.sty index 166c2e0f09..32d870d3c4 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-p-common.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-p-common.sty @@ -1,4 +1,4 @@ -% Copyright (c) 2009-13 Stephane GALLAND +% Copyright (c) 2009-21 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -16,7 +16,7 @@ % 330, Boston, MA 02111-1307, USA. % -\global\edef\upm@package@private@doctype@ver{2015/04/24} +\global\edef\upm@package@private@doctype@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-p-common}[\upm@package@private@doctype@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-spec.sty b/macros/latex/contrib/upmethodology/src/upmethodology-spec.sty index bc96076ab4..a0297667a5 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-spec.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-spec.sty @@ -1,6 +1,6 @@ % Specification Description for Unified Process Methodology % -% Copyright (c) 2006-2007 Stephane GALLAND +% Copyright (c) 2006-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -23,7 +23,7 @@ % 2007-03-19 Add localization. % -\global\edef\upm@package@spec@ver{2019/09/17} +\global\edef\upm@package@spec@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-spec}[\upm@package@spec@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-task.sty b/macros/latex/contrib/upmethodology/src/upmethodology-task.sty index fdc90a712a..a7499fe8dc 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-task.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-task.sty @@ -1,6 +1,6 @@ % Task management for Unified Process Methodology % -% Copyright (c) 2006-2007 Stephane GALLAND +% Copyright (c) 2006-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -23,7 +23,7 @@ % 2007-03-19 Add localization. % -\global\edef\upm@package@task@ver{2009/10/30} +\global\edef\upm@package@task@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-task}[\upm@package@task@ver] diff --git a/macros/latex/contrib/upmethodology/src/upmethodology-version.sty b/macros/latex/contrib/upmethodology/src/upmethodology-version.sty index 6d3538abab..0b2c0b90c1 100644 --- a/macros/latex/contrib/upmethodology/src/upmethodology-version.sty +++ b/macros/latex/contrib/upmethodology/src/upmethodology-version.sty @@ -1,7 +1,7 @@ % Version management for Unified Process Methodology % % Copyright (c) 2006-2007 Stephane GALLAND -% Copyright (c) 2013 Stephane GALLAND +% Copyright (c) 2013-2021 Stephane GALLAND % % This program is free library; you can redistribute it and/or modify % it under the terms of the GNU Lesser General Public License as @@ -19,7 +19,7 @@ % 330, Boston, MA 02111-1307, USA. % -\global\edef\upm@package@version@ver{2013/08/26} +\global\edef\upm@package@version@ver{2021/07/08} \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesPackage{upmethodology-version}[\upm@package@version@ver] -- cgit v1.2.3