diff options
Diffstat (limited to 'macros/latex')
119 files changed, 4586 insertions, 1134 deletions
diff --git a/macros/latex/contrib/crefthe/README.md b/macros/latex/contrib/crefthe/README.md index 44a00effb6..e46658f1d6 100644 --- a/macros/latex/contrib/crefthe/README.md +++ b/macros/latex/contrib/crefthe/README.md @@ -25,7 +25,7 @@ which is wrong, as the correct result should be: `\cref` would not be able to handle such cases correctly. -## The solution +### The solution Thus, it would be better to have a new command `\crefthe[<prep>]{<labels>}`, and to use it like ```latex @@ -33,7 +33,7 @@ Thus, it would be better to have a new command `\crefthe[<prep>]{<labels>}`, and ``` in order to get "*des théorèmes 1 et 2 et de la proposition 3*". -# Usage +## Usage Simply load the package with: ```latex @@ -41,11 +41,12 @@ Simply load the package with: ``` > "crefthe" uses "cleveref" internally, thus it should usually be placed at the last of your preamble. -Before everything, you need to define the names, which can be done with `\crefthename`. Its syntax is similar to `\crefname`, but now you can specify the definite articles, for example: +> With the package option `overwrite`, you may simply use `\cref` for `\crefthe`, and similarly for other commands. + +Before everything, you need to define the names, which can be done with `\crefthename`. Its syntax is similar to `\crefname`, but now you can specify the definite articles, for example (in French): ```latex \crefthename{theorem}[le]{théorème}[les]{théorèmes} ``` -(*In French*) Then you can use the command `\crefthe` as follows: - `\crefthe[<prep>]{<labels>}` @@ -53,9 +54,11 @@ Then you can use the command `\crefthe` as follows: - `\crefthe-[<prep>]{<labels>}` and `\crefthe+[<prep>]{<labels>}` - In case the automatic version does not meet your needs, here are two manual ones. The `-` version passes the preposition `<prep>` only to the first definite article, while the `+` version passes `<prep>` to every definite article. -> There is also a stared version `\crefthe*` for generating the same text but without hyperlinks. +> - There is also a stared version `\crefthe*` for generating the same text but without hyperlinks. +> - The name-only relatives are also available: `\namecrefthe` and `\namecrefsthe`. +> - `\cpagerefthe` and `\Cpagerefthe` are provided as well. -## Regarding German +### Regarding language with declensions In German, there are four declensions: nominative (`Nominativ`), genitive (`Genitiv`), dative (`Dativ`) and accusative (`Akkusativ`). For such situation, we introduce the command `\crefthevariantname` to specify the referencing name for the correspond environment. Below is an example of usage: ```latex @@ -87,7 +90,7 @@ These four are all equivalent and you may choose one to use according to your pr > *For more information, please refer to the documentation.* -# Acknowledgement +## Acknowledgement There are so many people I wish to express my gratitude to during the development of this package, including: @@ -97,6 +100,6 @@ There are so many people I wish to express my gratitude to during the developmen - Jonathan P. Spratte, without whose help the German support would probably take much longer to complete. -# License +## License This work is released under the LaTeX Project Public License, v1.3c or later. diff --git a/macros/latex/contrib/crefthe/crefthe-doc.pdf b/macros/latex/contrib/crefthe/crefthe-doc.pdf Binary files differindex e943eabdfc..63fd1342e3 100644 --- a/macros/latex/contrib/crefthe/crefthe-doc.pdf +++ b/macros/latex/contrib/crefthe/crefthe-doc.pdf diff --git a/macros/latex/contrib/crefthe/crefthe-doc.tex b/macros/latex/contrib/crefthe/crefthe-doc.tex index 36baa45df6..c433d17e82 100644 --- a/macros/latex/contrib/crefthe/crefthe-doc.tex +++ b/macros/latex/contrib/crefthe/crefthe-doc.tex @@ -45,6 +45,7 @@ Cref,Crefname, namecref,namecrefs, nameCref,nameCrefs, + cpageref,Cpageref, crefformat, crefthe,crefthename, Crefthe,Crefthename, @@ -52,6 +53,7 @@ setcrefname,setCrefname, namecrefthe,namecrefsthe, nameCrefthe,nameCrefsthe, + cpagerefthe,Cpagerefthe, crefthemark, crefthepatchname, selectlanguage, @@ -118,13 +120,13 @@ \begin{document} -\def\PackageVersion{2023/07/23} -\def\PackageSubVersion{a} +\def\PackageVersion{2023/10/16} +\def\PackageSubVersion{} \title{\crefthepackage{}\\\smallskip\itshape Cross referencing with proper definite articles} \author{Jinwen XU} \thanks{Corresponding to: \texttt{\crefthepackage{} \PackageVersion\PackageSubVersion}} -\date{\TheDate{\PackageVersion}[only-year-month], in Beijing} +\date{\TheDate{\PackageVersion}[only-year-month], in Paris} \maketitle @@ -210,6 +212,7 @@ Then you can use the command \lstinline|\crefthe| as follows: \begin{itemize} \item There is also a stared version \lstinline|\crefthe*| for generating the same referencing text without creating hyperlinks. \item The name-only relatives are also available: \lstinline|\namecrefthe| and \lstinline|\namecrefsthe|. + \item \lstinline|\cpagerefthe| and \lstinline|\Cpagerefthe| are provided as well. \end{itemize} \end{tip} @@ -307,7 +310,7 @@ Then, when referencing, you can use the command option \commandoption{abbr.} to \section{Regarding the upper and lower cases} -As in \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|,\linebreak \lstinline|\Crefthe|, \lstinline|\nameCrefthe| and \lstinline|\nameCrefsthe|, similar to \lstinline|\Crefname|, \lstinline|\Cref|, \lstinline|\nameCref|\linebreak and \lstinline|\nameCrefs|, reserved for using at the beginning of a sentence. +As in \textsf{cleveref}, these commands have corresponding uppercased version: \lstinline|\Crefthename|,\linebreak \lstinline|\Crefthe|, \lstinline|\nameCrefthe|, \lstinline|\nameCrefsthe| and \lstinline|\Cpagerefthe|, similar to \lstinline|\Crefname|,\linebreak \lstinline|\Cref|, \lstinline|\nameCref|, \lstinline|\nameCrefs| and \lstinline|\Cpageref|, reserved for using at the beginning of a sentence. Their usage is essentially the same as the corresponding lowercase version. For languages with declensions, such as German, there is also a \lstinline|\Crefthevariantname| (or equivalently, \lstinline|\setCrefname|), corresponding to the above \lstinline|\crefthevariantname|. @@ -324,6 +327,7 @@ Of course, you would have to define the \lstinline|\Crefthename|s separately, fo \Crefthename{proposition}[La]{proposition}[Les]{propositions} \end{code} +\enlargethispage*{\baselineskip} \section{On the coordination of gender and number} In many languages, adjectives and verbs need to be properly inflected for the gender and singular or plural of the noun. Take French as example, you may see the following expressions: @@ -361,7 +365,7 @@ For those preset names defined with \lstinline|\crefname|\,/\,\lstinline|\Crefna \crefthepackage{} loads \textsf{cleveref} automatically and passes related options to it. All its commands, used without optional arguments, degenerate to those in \textsf{cleveref}. For example, \lstinline|\crefthe{...}|% will produce the same result as \lstinline|\cref{...}|, and \lstinline|\crefthename| shall behave the same as \lstinline|\crefname| if the definite articles are not specified. That said, you may safely use the command \lstinline|\crefthe| everywhere in your document without causing extra trouble. -With the package option \packageoption{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| --- and similarly with \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|. +With the package option \packageoption{overwrite}, user commands in \textsf{cleveref} will be replaced by those offered here, thus you can simply write \lstinline|\cref| for \lstinline|\crefthe| --- and similarly with \lstinline|\Cref|, \lstinline|\crefname| and \lstinline|\Crefname|, etc. \clearpage diff --git a/macros/latex/contrib/crefthe/crefthe.sty b/macros/latex/contrib/crefthe/crefthe.sty index 4f7b382e74..bffa152b57 100644 --- a/macros/latex/contrib/crefthe/crefthe.sty +++ b/macros/latex/contrib/crefthe/crefthe.sty @@ -12,7 +12,7 @@ \NeedsTeXFormat{LaTeX2e}[2022-06-01] \ProvidesExplPackage {crefthe} - {2023/07/23a} {} + {2023/10/16} {} {Cross referencing with proper definite articles} \keys_define:nn { crefthe } @@ -48,6 +48,8 @@ \NewCommandCopy \crefthe_nameCref_original:w \nameCref \NewCommandCopy \crefthe_namecrefs_original:w \namecrefs \NewCommandCopy \crefthe_nameCrefs_original:w \nameCrefs +\NewCommandCopy \crefthe_cpageref_original:w \cpageref +\NewCommandCopy \crefthe_Cpageref_original:w \Cpageref \str_new:N \l__crefthe_tmpa_str @@ -92,6 +94,16 @@ \bool_gset_true:N \g__crefthe_uppercase_bool \__crefthe_cref_general:NNNnnN \c_false_bool #1 #2 { #3 } { #4 } \crefthe_nameCrefs_original:w } +\NewDocumentCommand \cpagerefthe { t- t+ O{} m } + { + \bool_gset_false:N \g__crefthe_uppercase_bool + \__crefthe_cref_general:NNNnnN \c_false_bool #1 #2 { #3 } { #4 } \crefthe_cpageref_original:w + } +\NewDocumentCommand \Cpagerefthe { t- t+ O{} m } + { + \bool_gset_true:N \g__crefthe_uppercase_bool + \__crefthe_cref_general:NNNnnN \c_false_bool #1 #2 { #3 } { #4 } \crefthe_Cpageref_original:w + } \keys_define:nn { crefthe-command } { @@ -476,10 +488,16 @@ { \bool_if:NT \l__crefthe_overwrite_bool { - \RenewCommandCopy \cref \crefthe - \RenewCommandCopy \Cref \Crefthe - \RenewCommandCopy \crefname \crefthename - \RenewCommandCopy \Crefname \Crefthename + \RenewCommandCopy \cref \crefthe + \RenewCommandCopy \Cref \Crefthe + \RenewCommandCopy \namecref \namecrefthe + \RenewCommandCopy \nameCref \nameCrefthe + \RenewCommandCopy \namecrefs \namecrefsthe + \RenewCommandCopy \nameCrefs \nameCrefsthe + \RenewCommandCopy \cpageref \cpagerefthe + \RenewCommandCopy \Cpageref \Cpagerefthe + \RenewCommandCopy \crefname \crefthename + \RenewCommandCopy \Crefname \Crefthename } } diff --git a/macros/latex/contrib/csvsimple/CHANGES.md b/macros/latex/contrib/csvsimple/CHANGES.md index 769baa5b68..18e055de83 100644 --- a/macros/latex/contrib/csvsimple/CHANGES.md +++ b/macros/latex/contrib/csvsimple/CHANGES.md @@ -16,6 +16,29 @@ and this project adheres to ### Security +## [2.5.0] - 2023-10-16 + +### Added +- New survey tables (issue #29): + - `\csvautotabularray` + - `\csvautotabularray*` + - `\csvautolongtabularray` + - `\csvautolongtabularray*` +- New corresponding options (issue #29) + - `autotabularray` + - `autotabularray*` + - `autolongtabularray` + - `autolongtabularray*` + +### Changed +- Documentation typos fixed (issue #30) +- Survey tables moved into a separate section + +### Fixed +- `collect data` does not collect `after first line` (issue #28) + + + ## [2.4.0] - 2023-05-09 ### Added diff --git a/macros/latex/contrib/csvsimple/README.md b/macros/latex/contrib/csvsimple/README.md index f0c928fe02..d72e0a6cc7 100644 --- a/macros/latex/contrib/csvsimple/README.md +++ b/macros/latex/contrib/csvsimple/README.md @@ -1,4 +1,4 @@ -# The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +# The LaTeX package csvsimple - version 2.5.0 (2023/10/16) > Copyright (c) 2008-2023 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> diff --git a/macros/latex/contrib/csvsimple/csvsimple-doc.sty b/macros/latex/contrib/csvsimple/csvsimple-doc.sty index b30ec16b39..36f052ac9b 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-doc.sty +++ b/macros/latex/contrib/csvsimple/csvsimple-doc.sty @@ -1,5 +1,5 @@ % !TeX encoding=UTF-8 -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple-doc.sty: style file for the documentation %% %% ------------------------------------------------------------------------------------------- @@ -18,8 +18,8 @@ %% %% This work consists of all files listed in README.md %% -\def\version{2.4.0}% -\def\datum{2023/05/09}% +\def\version{2.5.0}% +\def\datum{2023/10/16}% \IfFileExists{csvsimple-doc.cfg}{\input{csvsimple-doc.cfg}}{}\providecommand\csvpkgprefix{} diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.pdf b/macros/latex/contrib/csvsimple/csvsimple-example.pdf Binary files differindex 13485dc4d8..8915e27291 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-example.pdf +++ b/macros/latex/contrib/csvsimple/csvsimple-example.pdf diff --git a/macros/latex/contrib/csvsimple/csvsimple-example.tex b/macros/latex/contrib/csvsimple/csvsimple-example.tex index 3d0fdd0448..5d872f5fb2 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-example.tex +++ b/macros/latex/contrib/csvsimple/csvsimple-example.tex @@ -1,4 +1,4 @@ -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple-example.tex: an example for csvsimple %% %% ------------------------------------------------------------------------------------------- diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf Binary files differindex 460c0de9fb..9bf62e2f40 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-l3.pdf +++ b/macros/latex/contrib/csvsimple/csvsimple-l3.pdf diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.sty b/macros/latex/contrib/csvsimple/csvsimple-l3.sty index 87e48bda79..cb6a676054 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-l3.sty +++ b/macros/latex/contrib/csvsimple/csvsimple-l3.sty @@ -1,4 +1,4 @@ -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple-l3.sty: Simple LaTeX CSV file processing (LaTeX3) %% %% ------------------------------------------------------------------------------------------- @@ -17,7 +17,7 @@ %% %% This work consists of all files listed in README.md %% -\ProvidesExplPackage{csvsimple-l3}{2023/05/09}{2.4.0} +\ProvidesExplPackage{csvsimple-l3}{2023/10/16}{2.5.0} {LaTeX3 CSV file processing} @@ -967,6 +967,7 @@ \cs_new_protected_nopar:Npn \__csvsim_collect_data: { \__csvsim_gset_tl_to_collect:N \g__csvsim_hook_after_head_tl + \__csvsim_gset_tl_to_collect:N \g__csvsim_hook_after_first_line_tl \__csvsim_gset_tl_to_collect:N \g__csvsim_hook_after_line_tl \__csvsim_gset_tl_to_collect:N \g__csvsim_hook_before_first_line_tl \__csvsim_gset_tl_to_collect:N \g__csvsim_hook_before_line_tl @@ -1325,6 +1326,56 @@ table~head = \toprule\endhead \bottomrule\endfoot, }, + _autotabularray_ .meta:n = + { + file = {#1}, + command = \csvlinetotablerow, + no~head, + generic~collected~table = tblr, + }, + autotabularray .meta:n = + { + _autotabularray_ = {#1}, + generic~table~options = + { { + row{1} = {font=\bfseries}, + hline{1,Z} = {0.8pt}, + hline{2} = {0.4pt}, + } } + }, + autotabularray* .meta:n = + { + _autotabularray_ = {#1}, + generic~table~options = + { { + hline{1,Z} = {0.8pt}, + } } + }, + _autolongtabularray_ .meta:n = + { + file = {#1}, + command = \csvlinetotablerow, + no~head, + generic~collected~table = longtblr, + }, + autolongtabularray .meta:n = + { + _autolongtabularray_ = {#1}, + generic~table~options = + { { + row{1} = {font=\bfseries}, + hline{1,Z} = {0.8pt}, + hline{2} = {0.4pt}, + } } + }, + autolongtabularray* .meta:n = + { + _autolongtabularray_ = {#1}, + generic~table~options = + { { + hline{1,Z} = {0.8pt}, + } } + }, } @@ -1380,6 +1431,53 @@ } +\NewDocumentCommand \csvautotabularray { s +O{} m +o +o } + { + \keys_set:nn { csvsim } { default, every~csv } + \IfBooleanTF {#1} + { + \keys_set:nn { csvsim } { autotabularray*={#3}, #2} + } + { + \keys_set:nn { csvsim } { autotabularray={#3}, #2} + } + \IfNoValueF {#4} + { + \IfNoValueTF {#5} + { + \keys_set:nn { csvsim } { generic~table~options = { { #4 } } } + } + { + \keys_set:nn { csvsim } { generic~table~options = { [ #4 ]{ #5 } } } + } + } + \__csvsim_loop: + } + + +\NewDocumentCommand \csvautolongtabularray { s +O{} m +o +o } + { + \keys_set:nn { csvsim } { default, every~csv } + \IfBooleanTF {#1} + { + \keys_set:nn { csvsim } { autolongtabularray*={#3}, #2} + } + { + \keys_set:nn { csvsim } { autolongtabularray={#3}, #2} + } + \IfNoValueF {#4} + { + \IfNoValueTF {#5} + { + \keys_set:nn { csvsim } { generic~table~options = { { #4 } } } + } + { + \keys_set:nn { csvsim } { generic~table~options = { [ #4 ]{ #5 } } } + } + } + \__csvsim_loop: + } + %---- sorting diff --git a/macros/latex/contrib/csvsimple/csvsimple-l3.tex b/macros/latex/contrib/csvsimple/csvsimple-l3.tex index 32595572b5..3377217755 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-l3.tex +++ b/macros/latex/contrib/csvsimple/csvsimple-l3.tex @@ -1,6 +1,7 @@ % \LaTeX-Main\ % !TeX encoding=UTF-8 -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +% !TeX spellcheck=en_US +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple.tex: Manual %% %% ------------------------------------------------------------------------------------------- @@ -52,7 +53,7 @@ {\large Thomas F.~Sturm% \footnote{Prof.~Dr.~Dr.~Thomas F.~Sturm, Institut f\"{u}r Mathematik und Informatik, University of the Bundeswehr Munich, D-85577 Neubiberg, Germany; - email: \href{mailto:thomas.sturm@unibw.de}{thomas.sturm@unibw.de}}\par\medskip + email: \href{mailto:thomas.sturm@unibw.de}{thomas.sturm@unibw.de}}\par\medskip \normalsize\url{https://www.ctan.org/pkg/csvsimple}\par \url{https://github.com/T-F-S/csvsimple} } @@ -429,109 +430,6 @@ is useless for |\csvreader|. \end{dispExample} \end{docCommand} -\bigskip - -The following |\csvauto...| commands are intended for quick data overview -with limited formatting potential. -See Subsection~\ref{subsec:tabsupport} on page \pageref{subsec:tabsupport} -for the general table options in combination with \refCom{csvreader} and -\refCom{csvloop}. - -\begin{docCommands}[ - doc parameter = \oarg{options}\marg{file name} - ] - { - { doc name = csvautotabular }, - { doc name = csvautotabular*, doc new = 2021-06-25 } - } - |\csvautotabular| or |\csvautotabular*| - is an abbreviation for the application of the option key - \refKey{/csvsim/autotabular} or \refKey{/csvsim/autotabular*} - together with other \meta{options} to \refCom{csvloop}. - This macro reads the whole CSV file denoted by \meta{file name} - with an automated formatting. - The star variant treats the first line as data line and not as header line. -\begin{dispExample} -\csvautotabular*{grade.csv} -\end{dispExample} -\begin{dispExample} -\csvautotabular[filter equal={\csvcoliv}{f}]{grade.csv} -\end{dispExample} -\end{docCommands} - -\clearpage - -\begin{docCommands}[ - doc parameter = \oarg{options}\marg{file name} - ] - { - { doc name = csvautolongtable }, - { doc name = csvautolongtable*, doc new = 2021-06-25 } - } - |\csvautolongtable| or |\csvautolongtable*| - is an abbreviation for the application of the option key - \refKey{/csvsim/autolongtable} or \refKey{/csvsim/autolongtable*} - together with other \meta{options} to \refCom{csvloop}. - This macro reads the whole CSV file denoted by \meta{file name} - with an automated formatting. - For application, the package |longtable| is required which has to be - loaded in the preamble. - The star variant treats the first line as data line and not as header line. -\begin{dispListing} -\csvautolongtable{grade.csv} -\end{dispListing} -\csvautolongtable{grade.csv} -\end{docCommands} - - - -\begin{docCommands}[ - doc parameter = \oarg{options}\marg{file name} - ] - { - { doc name = csvautobooktabular }, - { doc name = csvautobooktabular*, doc new = 2021-06-25 } - } - |\csvautobooktabular| or |\csvautobooktabular*| - is an abbreviation for the application of the option key - \refKey{/csvsim/autobooktabular} or \refKey{/csvsim/autobooktabular*} - together with other \meta{options} to \refCom{csvloop}. - This macro reads the whole CSV file denoted by \meta{file name} - with an automated formatting. - For application, the package |booktabs| is required which has to be - loaded in the preamble. - The star variant treats the first line as data line and not as header line. -\begin{dispExample} -\csvautobooktabular{grade.csv} -\end{dispExample} -\end{docCommands} - - -\begin{docCommands}[ - doc parameter = \oarg{options}\marg{file name} - ] - { - { doc name = csvautobooklongtable }, - { doc name = csvautobooklongtable*, doc new = 2021-06-25 } - } - |\csvautobooklongtable| or |\csvautobooklongtable*| - is an abbreviation for the application of the option key - \refKey{/csvsim/autobooklongtable} or \refKey{/csvsim/autobooklongtable*} - together with other \meta{options} to \refCom{csvloop}. - This macro reads the whole CSV file denoted by \meta{file name} - with an automated formatting. - For application, the packages |booktabs| and |longtable| are required which have to be - loaded in the preamble. - The star variant treats the first line as data line and not as header line. -\begin{dispListing} -\csvautobooklongtable{grade.csv} -\end{dispListing} -\csvautobooklongtable{grade.csv} -\end{docCommands} - - - -\clearpage \begin{docCommand}[doc updated = 2021-06-25]{csvset}{\marg{options}} Sets \meta{options} for every following @@ -564,6 +462,7 @@ The following students passed the test in mathematics:\\ \end{dispExample} \end{docCommand} +\enlargethispage*{1cm} \begin{docCommand}{csvnames}{\marg{key}\marg{assignments}} Abbreviation for |\csvstyle{|\meta{key}|}{column names=|\marg{assignments}|}| @@ -723,7 +622,7 @@ purpose: Typesets the current data line number. This is the current number of accepted data lines without the header line. Despite of the name, there is no associated \LaTeX\ counter |csvrow|, - but \refCom{thecsvrow} is an accessor the \LaTeX3 integer + but \refCom{thecsvrow} accesses the \LaTeX3 integer \refCom{g_csvsim_row_int}. \end{docCommands} @@ -736,7 +635,7 @@ purpose: is either computed from the first valid line (header or data) or given by \refKey{/csvsim/column count}. Despite of the name, there is no associated \LaTeX\ counter |csvcolumncount|, - but \refCom{thecsvcolumncount} is an accessor the \LaTeX3 integer + but \refCom{thecsvcolumncount} accesses the \LaTeX3 integer \refCom{g_csvsim_columncount_int}. \begin{dispExample} \csvreader{grade.csv}{}{}% @@ -769,6 +668,210 @@ is \thecsvinputline{}. +\clearpage +\section{Macros for Automatic Survey Tables}\label{sec:autotable}% + +The following |\csvauto...| commands are intended for quick data overview +with \emph{limited} formatting potential. +The most customizable |\csvauto...| commands are +\refCom{csvautotabularray} and friends. + +For full control see Subsection~\ref{subsec:tabsupport} on page \pageref{subsec:tabsupport} +for the general table options in combination with \refCom{csvreader} and +\refCom{csvloop}. + +\begin{docCommands}[ + doc parameter = \oarg{options}\marg{file name} + ] + { + { doc name = csvautotabular }, + { doc name = csvautotabular*, doc new = 2021-06-25 } + } + |\csvautotabular| or |\csvautotabular*| + is an abbreviation for the application of the option key + \refKey{/csvsim/autotabular} or \refKey{/csvsim/autotabular*} + together with other \meta{options} to \refCom{csvloop}. + This macro reads the whole CSV file denoted by \meta{file name} + with an automated formatting. + The star variant treats the first line as data line and not as header line. +\begin{dispExample} +\csvautotabular*{grade.csv} +\end{dispExample} +\begin{dispExample} +\csvautotabular[filter equal={\csvcoliv}{f}]{grade.csv} +\end{dispExample} +\end{docCommands} + + + +\begin{docCommands}[ + doc parameter = \oarg{options}\marg{file name} + ] + { + { doc name = csvautolongtable }, + { doc name = csvautolongtable*, doc new = 2021-06-25 } + } + |\csvautolongtable| or |\csvautolongtable*| + is an abbreviation for the application of the option key + \refKey{/csvsim/autolongtable} or \refKey{/csvsim/autolongtable*} + together with other \meta{options} to \refCom{csvloop}. + This macro reads the whole CSV file denoted by \meta{file name} + with an automated formatting. + For application, the package \ctanpkg{longtable} is required which has to be + loaded in the preamble. + The star variant treats the first line as data line and not as header line. +\begin{dispListing} +\csvautolongtable{grade.csv} +\end{dispListing} +\csvautolongtable{grade.csv} +\end{docCommands} + + +\clearpage + + +\begin{docCommands}[ + doc parameter = \oarg{options}\marg{file name} + ] + { + { doc name = csvautobooktabular }, + { doc name = csvautobooktabular*, doc new = 2021-06-25 } + } + |\csvautobooktabular| or |\csvautobooktabular*| + is an abbreviation for the application of the option key + \refKey{/csvsim/autobooktabular} or \refKey{/csvsim/autobooktabular*} + together with other \meta{options} to \refCom{csvloop}. + This macro reads the whole CSV file denoted by \meta{file name} + with an automated formatting. + For application, the package \ctanpkg{booktabs} is required which has to be + loaded in the preamble. + The star variant treats the first line as data line and not as header line. +\begin{dispExample} +\csvautobooktabular{grade.csv} +\end{dispExample} +\end{docCommands} + + +\begin{docCommands}[ + doc parameter = \oarg{options}\marg{file name} + ] + { + { doc name = csvautobooklongtable }, + { doc name = csvautobooklongtable*, doc new = 2021-06-25 } + } + |\csvautobooklongtable| or |\csvautobooklongtable*| + is an abbreviation for the application of the option key + \refKey{/csvsim/autobooklongtable} or \refKey{/csvsim/autobooklongtable*} + together with other \meta{options} to \refCom{csvloop}. + This macro reads the whole CSV file denoted by \meta{file name} + with an automated formatting. + For application, the packages \ctanpkg{booktabs} and \ctanpkg{longtable} are required which have to be + loaded in the preamble. + The star variant treats the first line as data line and not as header line. +\begin{dispListing} +\csvautobooklongtable{grade.csv} +\end{dispListing} +\csvautobooklongtable{grade.csv} +\end{docCommands} + + +\clearpage + +\begin{docCommands}[ + doc parameter = \oarg{options}\marg{file name}\oarg{taboptions 1}\oarg{taboptions 2}, + doc new = 2023-10-13 + ] + { + { doc name = csvautotabularray }, + { doc name = csvautotabularray* }, + { doc name = csvautolongtabularray }, + { doc name = csvautolongtabularray* }, + } + These macros are abbreviations for the application of the option keys + \refKey{/csvsim/autotabularray}, \refKey{/csvsim/autotabularray*},\\ + \refKey{/csvsim/autolongtabularray}, or \refKey{/csvsim/autolongtabularray*} + together with other \meta{options} to \refCom{csvloop}. + These macros read the whole CSV file denoted by \meta{file name} + with an automated formatting. + For application, the package \ctanpkg{tabularray} is required which has to be + loaded in the preamble. + \refCom{csvautotabularray} uses the \docAuxEnvironment*{tblr} environment and + \refCom{csvautolongtabularray} uses the \docAuxEnvironment*{longtblr} environment. + The star variants treat the first line as data line and not as header line.\par + Options to the table environments from \ctanpkg{tabularray} may be given + by either setting \refKey{/csvsim/generic table options} or + using \meta{taboptions 1} and \meta{taboptions 2}.\par + The default setting is +\begin{dispListing} +generic table options = + { { + row{1} = {font=\bfseries}, + hline{1,Z} = {0.8pt}, + hline{2} = {0.4pt}, + } } +\end{dispListing} + For the star variants, the default setting is +\begin{dispListing} +generic table options = + { { + hline{1,Z} = {0.8pt}, + } } +\end{dispListing} + +Examples: + +\begin{dispExample} +\csvautotabularray{grade.csv} +\end{dispExample} + +\begin{dispExample} +\csvautotabularray[table centered, + generic table options = + {{ + row{odd} = {red!85!gray!7}, + row{1} = {bg=red!85!gray, fg=white, font=\bfseries}, + }} + ] + {grade.csv} +\end{dispExample} + +\clearpage + +Alternatively to \refKey{/csvsim/generic table options} +(and overruling this option), one may give options to +\docAuxEnvironment*{tblr} or \docAuxEnvironment*{longtblr} +using \meta{taboptions 1} and \meta{taboptions 2}. +If \meta{taboptions 2} is \emph{not present}, then \meta{taboptions 1} +is used as mandatory argument. +Otherwise, \meta{taboptions 1} is used as optional argument and +\meta{taboptions 2} as mandatory argument. + +\begin{dispExample} +\csvautotabularray[table centered] + {grade.csv} + [ + row{odd} = {red!85!gray!7}, + row{1} = {bg=red!85!gray, fg=white, font=\bfseries}, + ] +\end{dispExample} + + +\begin{dispExample} +\csvautotabularray[table centered] + {grade.csv} + [ + tall, + caption = {My table}, + remark{Note} = {My remark}, + ] + [ + row{odd} = {red!85!gray!7}, + row{1} = {bg=red!85!gray, fg=white, font=\bfseries}, + ] +\end{dispExample} + + +\end{docCommands} \clearpage @@ -1209,7 +1312,7 @@ filter options: \begin{docCsvKeys}[ doc parameter = {=\marg{floating point expression}}, - doc description = {style,no default}, + doc description = {style, no default}, doc new = {2022-10-21} ] { @@ -1223,7 +1326,7 @@ filter options: \begin{docCsvKeys}[ doc parameter = {=\marg{boolean expression}}, - doc description = {style,no default}, + doc description = {style, no default}, doc new = {2022-10-21} ] { @@ -1637,7 +1740,8 @@ are described with predefined keys. The following keys allow to use further \subsubsection{General Survey Tables}\label{subsubsec:table_survey} The following |auto| options are the counterparts for the respective quick -overview commands like \refCom{csvautotabular}. They are listed for +overview commands like \refCom{csvautotabular}, see Section~\ref{sec:autotable}. +They are listed for completeness, but are unlikely to be used directly. \begin{docCsvKeys}[ @@ -1695,6 +1799,25 @@ completeness, but are unlikely to be used directly. \end{docCsvKeys} +\begin{docCsvKeys}[ + doc parameter = {=\meta{file name}}, + doc description = no default, + doc new = {2023-10-13} + ] + { + { doc name = autotabularray }, + { doc name = autotabularray* }, + { doc name = autolongtabularray }, + { doc name = autolongtabularray* }, + } + Reads the whole CSV file denoted \meta{file name} with an automated formatting + using the required |tabularray| package. + \refKey{/csvsim/autotabularray} uses the \docAuxEnvironment*{tblr} environment and + \refKey{/csvsim/autolongtabularray} uses the \docAuxEnvironment*{longtblr} environment. + The star variants treat the first line as data line and not as header line. +\end{docCsvKeys} + + \clearpage \subsection{Special Characters}\label{subsec:specchar} Be default, the CSV content is treated like normal \LaTeX\ text, see @@ -2841,29 +2964,23 @@ Display data from line 3 on:\par \clearpage -The following example displays a \ctanpkg{tabularray} variant of the -\refCom{csvautotabular} command. Note the \refKey{/csvsim/no head} option -to read the first line as data line. Also note that \refCom{csvlinetotablerow} -is used without preceding modifier. +The following example uses \refCom{csvautotabularray} to display the whole +table. Note that the \ctanpkg{tabularray} options are given as last +optional argument. \begin{dispExample} % \usepackage{tabularray} -\csvreader[ - no head, - centered tabularray = - { - row{odd} = {blue!85!gray!7}, - row{1} = {blue!50!gray!25, font=\bfseries}, - }, - table head = {\hline[0.1em,blue!50!black]}, - table foot = {\hline[0.1em,blue!50!black]}, - late after first line = {\\\hline[blue!50!black]}, -]{data.csv}{}{% - \csvlinetotablerow% -} +\csvautotabularray[table centered]{data.csv} + [ + row{odd} = {blue!85!gray!7}, + row{1} = {blue!50!gray!25, font=\bfseries}, + hline{1,Z} = {0.1em, blue!50!black}, + hline{2} = {blue!50!black} + ] \end{dispExample} + \clearpage \subsection{Imported CSV data}\label{sec:importeddata}% If data is imported from other applications, there is not always a choice diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf Binary files differindex ebf97bfd4e..a2b995531c 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf +++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.pdf diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty index 915d318c27..f47d7540bd 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-legacy.sty +++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.sty @@ -1,4 +1,4 @@ -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple-legacy.sty: Simple LaTeX CSV file processing (LaTeX2e) %% %% ------------------------------------------------------------------------------------------- @@ -18,7 +18,7 @@ %% This work consists of all files listed in README.md %% \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{csvsimple-legacy}[2023/05/09 version 2.4.0 LaTeX2e CSV file processing] +\ProvidesPackage{csvsimple-legacy}[2023/10/16 version 2.5.0 LaTeX2e CSV file processing] %---- check package diff --git a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex index 1fe95b89b8..290d512fb5 100644 --- a/macros/latex/contrib/csvsimple/csvsimple-legacy.tex +++ b/macros/latex/contrib/csvsimple/csvsimple-legacy.tex @@ -1,6 +1,6 @@ % \LaTeX-Main\ % !TeX encoding=UTF-8 -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple.tex: Manual %% %% ------------------------------------------------------------------------------------------- diff --git a/macros/latex/contrib/csvsimple/csvsimple.pdf b/macros/latex/contrib/csvsimple/csvsimple.pdf Binary files differindex 8a9fb039bb..e4b5badc01 100644 --- a/macros/latex/contrib/csvsimple/csvsimple.pdf +++ b/macros/latex/contrib/csvsimple/csvsimple.pdf diff --git a/macros/latex/contrib/csvsimple/csvsimple.sty b/macros/latex/contrib/csvsimple/csvsimple.sty index ae9306a2a8..1d3840f1eb 100644 --- a/macros/latex/contrib/csvsimple/csvsimple.sty +++ b/macros/latex/contrib/csvsimple/csvsimple.sty @@ -1,4 +1,4 @@ -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple.sty: Simple LaTeX CSV file processing %% %% ------------------------------------------------------------------------------------------- @@ -19,7 +19,7 @@ %% \RequirePackage{l3keys2e} -\ProvidesExplPackage{csvsimple}{2023/05/09}{2.4.0} +\ProvidesExplPackage{csvsimple}{2023/10/16}{2.5.0} {LaTeX CSV file processing} \cs_if_exist:NT \c__csvsim_package_expl_bool diff --git a/macros/latex/contrib/csvsimple/csvsimple.tex b/macros/latex/contrib/csvsimple/csvsimple.tex index 5aa9e34ca7..7e4e93d1ed 100644 --- a/macros/latex/contrib/csvsimple/csvsimple.tex +++ b/macros/latex/contrib/csvsimple/csvsimple.tex @@ -1,6 +1,6 @@ % \LaTeX-Main\ % !TeX encoding=UTF-8 -%% The LaTeX package csvsimple - version 2.4.0 (2023/05/09) +%% The LaTeX package csvsimple - version 2.5.0 (2023/10/16) %% csvsimple.tex: Manual %% %% ------------------------------------------------------------------------------------------- diff --git a/macros/latex/contrib/hvfloat/Changes b/macros/latex/contrib/hvfloat/Changes index c1b76a003f..41fa127bf1 100644 --- a/macros/latex/contrib/hvfloat/Changes +++ b/macros/latex/contrib/hvfloat/Changes @@ -1,4 +1,7 @@ hvfloat.sty: +2.47 2023-10-16 - added type doubleFullPage for images with a width + of 2\paperwidth, but variable height and possible + text on both pages. 2.46 2023-05-16 - bugfix for doublePAGE and options for package caption - bugfix for doublePAGE labels: <label>,<label-2><label-cap>, 2.45 2023-01-28 - bugfix for doubleFULLPAGE images which followed diff --git a/macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf Binary files differindex 714c04d580..b49623bceb 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/after1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf Binary files differindex 3e15ead284..8d29f55e11 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/after2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/capPos.pdf b/macros/latex/contrib/hvfloat/doc/examples/capPos.pdf Binary files differindex 35032f09c8..8d12b64b0c 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/capPos.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/capPos.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/default1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/default1s1c.pdf Binary files differindex c9527b40b8..195d9900c1 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/default1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/default1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/default1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/default1s2c.pdf Binary files differindex 8d11c0e7c0..4cc1b30784 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/default1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/default1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/default2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/default2s1c.pdf Binary files differindex b5a941923f..44e24d3799 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/default2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/default2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/default2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/default2s2c.pdf Binary files differindex e781aab1ed..7e0151eed9 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/default2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/default2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.pdf Binary files differnew file mode 100644 index 0000000000..76a6cf9458 --- /dev/null +++ b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.tex b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.tex new file mode 100644 index 0000000000..bd9568bc67 --- /dev/null +++ b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s1c.tex @@ -0,0 +1,1480 @@ +\errorcontextlines=100 +%\documentclass[final]{ltugboat} +\documentclass[twoside,twocolumn,american]{scrartcl} +%% $Id: doublepage2s2c.tex 92 2021-05-18 09:46:55Z herbert $ + +\input{preamble.ltx} +\usepackage{xcolor,marginnote} + +\usepackage{marginnote,showframe} +\setcounter{tocdepth}{2} + +\makeatletter +\def\MarginNote#1{% + \expandafter\marginnote\expandafter{#1\\\checkoddpage\ifoddpage oddpage\else evenpage\fi\\ + \if@twocolumn + 2col, + \if@firstcolumn + 1.col + \else + 2.col + \fi + \else + 1col, + \fi}} +\makeatother + +\begin{document} +\title{Examples for doublepage floats \newline with bind correction} +\author{Herbert Voß} +\maketitle + +\tableofcontents + + +\onecolumn +\listoffigures + +\cleardoublepage +\part{Argument \texttt{doubleFullPage}} +\section{Definition on an odd page} + +%\Blindtext +\hvblindtext + +\hvblindtext + +\subsection{The default -- in the first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage0}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0} + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + + +\subsection{The default -- in the second column} + + +\begin{lstlisting} +\hvFloat[doubleFullPage,capPos=left,sameHeight]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage02nd} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage02nd}} +\hvFloat[doubleFullPage,capPos=left,sameHeight]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage02nd} + +\Blindtext + +%\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{\texttt{bindCorr=1cm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=left,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage1}} +\hvFloat[doubleFullPage,capWidth=n,capPos=left,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1} + +\hvblindtext + +%\Blindtext + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\subsection{\texttt{bindCorr=1cm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage12nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage12nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage12nd} + +\hvblindtext + +%\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + + +\subsection{\texttt{bindCorr=3mm} -- first column} +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage2}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2} + + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + + + + +\subsection{\texttt{bindCorr=3mm} -- second column} +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage22nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage22nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage22nd} + + +\Blindtext + +%\Blindtext + +\Blindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage3}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3} + + +\Blindtext + +\Blindtext + +\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + +\subsection{\texttt{bindCorr=<inside textwidth>} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage32nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage32nd}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage32nd} + + +\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + + +\section{Definition on an even page} + + +\subsection{The default -- first column} +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage0a}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{The default -- second column} +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a2nd} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage0a2nd}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a2nd} + + +\hvblindtext +\hvblindtext + +\hvblindtext + +\Blindtext + +%\Blindtext + +%\Blindtext + + + + +\subsection{\texttt{bindCorr=1cm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage1a}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a} + +%\hvblindtext + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=1cm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage1a2nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a2nd} + +\hvblindtext + +%\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + + + + +\subsection{\texttt{bindCorr=3mm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage2a}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a} + + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=3mm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage2a2nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a2nd} + + +\Blindtext + +%\Blindtext + +%\Blindtext + +%\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage3a}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + +%\hvblindtext + +%\hvblindtext + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage3a2nd}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a2nd} + + +\Blindtext + +\Blindtext + +\Blindtext + +\hvblindtext + + + +%\cleardoublepage + + +\hvblindtext + +\hvblindtext + +\Blindtext + +\hvblindtext + + + + + + +\cleardoublepage + +\part{Argument \texttt{doubleFULLPAGE}} +\section{Definition on an odd page} + +\Blindtext\hvblindtext + +\hvblindtext + +\subsection{The default -- in the first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0}} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0} + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{The default -- in the second column} + + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE02nd} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE02nd}} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE02nd} + +\Blindtext + +%\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{\texttt{bindCorr=1cm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE1} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE1}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE1} + +\hvblindtext + +%\Blindtext + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\subsection{\texttt{bindCorr=1cm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE12nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE12nd}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE12nd} + +\hvblindtext + +%\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + + +\subsection{\texttt{bindCorr=3mm} -- first column} +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE2} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE2}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE2} + + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + + + + +\subsection{\texttt{bindCorr=3mm} -- second column} +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE22nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE22nd}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE22nd} + + +\Blindtext + +%\Blindtext + +%\Blindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE3} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE3}} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE3} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + +\subsection{\texttt{bindCorr=<inside textwidth>} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE32nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE32nd}} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE32nd} + + +%\Blindtext + +\hvblindtext + +\hvblindtext + +%\hvblindtext + + + + +\section{Definition on an even page} + + +\subsection{The default -- first column} +\begin{lstlisting} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0a} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0a}} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0a} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{The default -- second column} +\begin{lstlisting} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0a2nd} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0a2nd}} +\hvFloat[doubleFULLPAGE]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0a2nd} + + +\hvblindtext +\hvblindtext + +\hvblindtext + +\Blindtext + +%\Blindtext + +%\Blindtext + + + + +\subsection{\texttt{bindCorr=1cm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE1a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE1a}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE1a} + +%\hvblindtext + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=1cm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE1a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE1a2nd}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE1a2nd} + +\hvblindtext + +%\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + + + + +\subsection{\texttt{bindCorr=3mm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE2a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE2a}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE2a} + + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=3mm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE2a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE2a2nd}} +\hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE2a2nd} + + +\Blindtext + +%\Blindtext + +%\Blindtext + +%\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE3a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE3a}} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE3a} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + +%\hvblindtext + +%\hvblindtext + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE3a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE3a2nd}} +\hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% + {figure}% + {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE3a2nd} + + +\Blindtext + +\Blindtext + +\Blindtext + +\hvblindtext + + + +%\cleardoublepage + + +\hvblindtext + +\hvblindtext + +\Blindtext + +\hvblindtext + +\section{Full height, but no complete double page} +\subsection{The default -- in the first column} + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capPos=right]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0n} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0n}} +\hvFloat[doubleFULLPAGE,capPos=right]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE0n} + +\Blindtext + +\Blindtext + +%\Blindtext + +\clearpage +\Blindtext +%\hvblindtext + +%\hvblindtext + +\Blindtext + +\hvblindtext +\Blindtext + +\subsection{The default -- in the second column} + + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capPos=before]% + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE02ndn} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE02ndn}} +\hvFloat[doubleFULLPAGE,capPos=before] + {figure}% + {\includegraphics[height=\paperheight]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE02ndn} + +\Blindtext + +\Blindtext + +\Blindtext + +%\hvblindtext + +\Blindtext + +%\Blindtext + + +\subsection{The default -- in the second column} + + +\begin{lstlisting} +\hvFloat[doubleFULLPAGE,capPos=after,twoColumnCaption]% + {figure}% + {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE02ndnn} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFULLPAGE02ndnn}} +\hvFloat[doubleFULLPAGE,capPos=after,twoColumnCaption]% + {figure}% + {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed + at the bottom of the following page. The doublepage image begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFULLPAGE}}% + {fig:doubleFULLPAGE02ndnn} + +\Blindtext + +\Blindtext + +\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + + +\end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.pdf Binary files differindex 7e922cbb8d..feda15368e 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.tex b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.tex index 46ae9406ba..7c30c21b03 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.tex +++ b/macros/latex/contrib/hvfloat/doc/examples/doublefullpage2s2c.tex @@ -9,6 +9,21 @@ \usepackage{marginnote,showframe} \setcounter{tocdepth}{2} +\makeatletter +\def\MarginNote#1{% + \expandafter\marginnote\expandafter{#1\\\checkoddpage\ifoddpage oddpage\else evenpage\fi\\ + \if@twocolumn + 2col, + \if@firstcolumn + 1.col + \else + 2.col + \fi + \else + 1col, + \fi}} +\makeatother + \begin{document} \title{Examples for doublepage floats \newline with bind correction} \author{Herbert Voß} @@ -20,8 +35,672 @@ \onecolumn \listoffigures -\newpage\null +\cleardoublepage \twocolumn +\part{Argument \texttt{doubleFullPage}} +\section{Definition on an odd page} + +%\Blindtext\hvblindtext + +\hvblindtext + +\subsection{The default -- in the first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage0}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0} + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + + +\subsection{The default -- in the second column} + + +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage02nd} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage02nd}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage02nd} + +\Blindtext + +%\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{\texttt{bindCorr=1cm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage1}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1} + +\hvblindtext + +%\Blindtext + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\subsection{\texttt{bindCorr=1cm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage12nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage12nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage12nd} + +\hvblindtext + +%\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + + +\subsection{\texttt{bindCorr=3mm} -- first column} +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage2}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2} + + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + + + + +\subsection{\texttt{bindCorr=3mm} -- second column} +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage22nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage22nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage22nd} + + +\Blindtext + +%\Blindtext + +\Blindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage3}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3} + + +\Blindtext + +\Blindtext + +\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + +\subsection{\texttt{bindCorr=<inside textwidth>} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage32nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage32nd}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage32nd} + + +\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + + +\section{Definition on an even page} + + +\subsection{The default -- first column} +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage0a}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\subsection{The default -- second column} +\begin{lstlisting} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a2nd} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doubleFullPage0a2nd}} +\hvFloat[doubleFullPage]% + {figure}% + {\includegraphics[doubleFullPage]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage0a2nd} + + +\hvblindtext +\hvblindtext + +%\hvblindtext + +\Blindtext + +%\Blindtext + +%\Blindtext + + + + +\subsection{\texttt{bindCorr=1cm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage1a}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a} + +%\hvblindtext + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=1cm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage1a2nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=1cm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage1a2nd} + +\hvblindtext + +%\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + + + + +\subsection{\texttt{bindCorr=3mm} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage2a}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a} + + +\Blindtext + +\Blindtext + +%\Blindtext +%\Blindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + +\subsection{\texttt{bindCorr=3mm} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage2a2nd}} +\hvFloat[doubleFullPage,capWidth=n,capPos=right,bindCorr=3mm]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage2a2nd} + + +\Blindtext + +%\Blindtext + +%\Blindtext + +%\hvblindtext + +\hvblindtext + +\hvblindtext + +\hvblindtext + + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- first column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage3a}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a} + + +\Blindtext + +\Blindtext + +%\Blindtext + +\hvblindtext + +\hvblindtext + +%\hvblindtext + +%\hvblindtext + + +\subsection{\texttt{bindCorr=<inside textwidth>} -- second column} + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a2nd} +\end{lstlisting} + +\MarginNote{Fig. \ref{fig:doubleFullPage3a2nd}} +\hvFloat[doubleFullPage,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% + {figure}% + {\includegraphics[doubleFullPagebindCorr]{images/felsen-wasser}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doubleFullPage}}% + {fig:doubleFullPage3a2nd} + + +\Blindtext + +\Blindtext + +\Blindtext + +\hvblindtext + + + +%\cleardoublepage + + +\hvblindtext + +\hvblindtext + +\Blindtext + +\hvblindtext + + + + + + +\cleardoublepage + \part{Argument \texttt{doubleFULLPAGE}} \section{Definition on an odd page} @@ -44,7 +723,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE0}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0}} \hvFloat[doubleFULLPAGE]% {figure}% {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% @@ -82,7 +761,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE02nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE02nd}} \hvFloat[doubleFULLPAGE]% {figure}% {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% @@ -118,7 +797,7 @@ {fig:doubleFULLPAGE1} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE1}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE1}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -159,7 +838,7 @@ {fig:doubleFULLPAGE12nd} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE12nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE12nd}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -198,7 +877,7 @@ {fig:doubleFULLPAGE2} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE2}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE2}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -238,7 +917,7 @@ {fig:doubleFULLPAGE22nd} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE22nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE22nd}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -276,7 +955,7 @@ {fig:doubleFULLPAGE3} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE3}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE3}} \hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -315,7 +994,7 @@ {fig:doubleFULLPAGE32nd} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE32nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE32nd}} \hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -355,7 +1034,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE0a}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0a}} \hvFloat[doubleFULLPAGE]% {figure}% {\includegraphics[height=\paperheight]{images/rheinsberg}}% @@ -395,7 +1074,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE0a2nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0a2nd}} \hvFloat[doubleFULLPAGE]% {figure}% {\includegraphics[height=\paperheight]{images/rheinsberg}}% @@ -435,7 +1114,7 @@ {fig:doubleFULLPAGE1a} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE1a}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE1a}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -477,7 +1156,7 @@ {fig:doubleFULLPAGE1a2nd} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE1a2nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE1a2nd}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=1cm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -517,7 +1196,7 @@ {fig:doubleFULLPAGE2a} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE2a}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE2a}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -559,7 +1238,7 @@ {fig:doubleFULLPAGE2a2nd} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE2a2nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE2a2nd}} \hvFloat[doubleFULLPAGE,capWidth=n,capPos=right,bindCorr=3mm]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -601,7 +1280,7 @@ {fig:doubleFULLPAGE3a} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE3a}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE3a}} \hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -642,7 +1321,7 @@ {fig:doubleFULLPAGE3a2nd} \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE3a2nd}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE3a2nd}} \hvFloat[doubleFULLPAGE,capWidth=n,bindCorr=\the\dimexpr1in+\oddsidemargin,capPos=after]% {figure}% {\includegraphics[doubleFULLPAGEbindCorr]{images/rheinsberg}}% @@ -691,7 +1370,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE0n}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE0n}} \hvFloat[doubleFULLPAGE,capPos=right]% {figure}% {\includegraphics[height=\paperheight]{images/rheinsberg}}% @@ -735,7 +1414,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE02ndn}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE02ndn}} \hvFloat[doubleFULLPAGE,capPos=before] {figure}% {\includegraphics[height=\paperheight]{images/rheinsberg}}% @@ -775,7 +1454,7 @@ \end{lstlisting} -\marginnote{Fig. \ref{fig:doubleFULLPAGE02ndnn}} +\MarginNote{Fig. \ref{fig:doubleFULLPAGE02ndnn}} \hvFloat[doubleFULLPAGE,capPos=after,twoColumnCaption]% {figure}% {\includegraphics[doubleFULLPAGE]{images/rheinsberg}}% @@ -798,5 +1477,4 @@ \hvblindtext - \end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf Binary files differindex 58bfcbd417..3b897e3f91 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex index ebd703e964..db61c61351 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex +++ b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s1c.tex @@ -1,5 +1,5 @@ \documentclass[twoside]{scrartcl} -%% $Id: doublepage2s1c.tex 299 2021-10-09 14:05:35Z herbert $ +%% $Id: doublepage2s1c.tex 773 2023-10-16 12:29:28Z herbert $ \input{preamble.ltx} \usepackage{blindtext,xcolor,marginnote} @@ -434,7 +434,10 @@ \hvblindtext -%\Blindtext + +\Blindtext + +\hvblindtext \subsection{Definition on an even page} @@ -566,6 +569,78 @@ \Blindtext + + +\subsubsection{Argument \texttt{doubleFullPage}} + + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage000} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage000}} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage000} + +\Blindtext + +\Blindtext + +\Blindtext + +\Blindtext + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage001} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage001}} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage001} + +\Blindtext + +\Blindtext +\Blindtext +\Blindtext + +\Blindtext + + + + \clearpage \section{Argument \texttt{doubleFULLPAGE}} @@ -706,6 +781,8 @@ is on the pages~\pageref{fig:doubleFULLPAGE0after}f. \Blindtext +\Blindtext + \subsubsection{\texttt{bindCorr=3mm}} \begin{lstlisting} @@ -737,8 +814,9 @@ is on the pages~\pageref{fig:doubleFULLPAGE0after}f. \Blindtext -%\hvblindtext -%\hvblindtext +\hvblindtext + +\hvblindtext \subsubsection{\texttt{bindCorr=<inside textwidth>}} @@ -768,7 +846,16 @@ is on the pages~\pageref{fig:doubleFULLPAGE0after}f. \Blindtext +\hvblindtext + +\hvblindtext + +\hvblindtext + +\Blindtext + \subsection{Definition on an even page} +\hvblindtext \subsubsection{The default} @@ -968,4 +1055,5 @@ is on the pages~\pageref{fig:doubleFULLPAGE0afterA}f. + \end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.pdf Binary files differindex 88920143cd..282f48c364 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.tex b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.tex index 48214608fc..f7abc397d4 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.tex +++ b/macros/latex/contrib/hvfloat/doc/examples/doublepage2s2c.tex @@ -1,7 +1,7 @@ \errorcontextlines=100 %\documentclass[final]{ltugboat} \documentclass[twoside,twocolumn]{scrartcl} -%% $Id: doublepage2s2c.tex 97 2021-05-26 19:31:53Z herbert $ +%% $Id: doublepage2s2c.tex 773 2023-10-16 12:29:28Z herbert $ \input{preamble.ltx} \usepackage{blindtext,xcolor,marginnote} @@ -1055,4 +1055,221 @@ is on the pages~\pageref{fig:doubleFULLPAGE0afterA}f. \Blindtext +\section{Argument \texttt{doubleFullPage}} + +\Blindtext\hvblindtext + +\hvblindtext + +\Blindtext + +\Blindtext + + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage000} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage000}} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage000} + +\Blindtext + +\Blindtext + +\Blindtext + +\Blindtext + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage001} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage001}} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage001} + +\Blindtext + +\Blindtext +\Blindtext +\Blindtext + +\Blindtext + +%\Blindtext +%\hvblindtext + +\hvblindtext + +\Blindtext + +\Blindtext + + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0000} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage000}} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0000} + +\Blindtext + +\Blindtext + +\Blindtext + +\Blindtext + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0001} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage001}} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0001} + +\Blindtext + +\Blindtext +\Blindtext +\Blindtext + +\Blindtext + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0002} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage0002}} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0002} + +\Blindtext + +\Blindtext +\Blindtext +\Blindtext + +\Blindtext + + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0003} +\end{lstlisting} + + +\marginnote{Fig. \ref{fig:doublePage0003}} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage0003} + +\Blindtext + +\Blindtext +\Blindtext +\Blindtext + +\Blindtext + + + + \end{document}
\ No newline at end of file diff --git a/macros/latex/contrib/hvfloat/doc/examples/even1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/even1s1c.pdf Binary files differindex 1f79ea9240..f5129e2fe1 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/even1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/even1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/even1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/even1s2c.pdf Binary files differindex 5b5a6f2d32..8842af5ebb 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/even1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/even1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/even2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/even2s1c.pdf Binary files differindex f5e994aee4..4f361957fe 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/even2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/even2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/even2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/even2s2c.pdf Binary files differindex 71e429e6b9..c02bd2d322 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/even2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/even2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/fullpage1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/fullpage1s1c.pdf Binary files differindex 35e6e0c51f..b4e299a5e8 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/fullpage1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/fullpage1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/fullpage1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/fullpage1s2c.pdf Binary files differindex 17d5731a23..8abc361d7b 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/fullpage1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/fullpage1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/inner1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/inner1s2c.pdf Binary files differindex 84caf7516d..7cf579e2b8 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/inner1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/inner1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/inner2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/inner2s1c.pdf Binary files differindex 86beabc7da..c9364feb7a 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/inner2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/inner2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/inner2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/inner2s2c.pdf Binary files differindex 33c045deba..163ed2b8ee 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/inner2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/inner2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/left2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/left2s2c.pdf Binary files differindex 60ee0ab1a8..b5fe92532b 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/left2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/left2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-after1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-after1s1c.pdf Binary files differindex d56b189175..4ecf842042 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-after1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-after1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-default1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-default1s1c.pdf Binary files differindex 51682a3bc5..847f10ef7d 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-default1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-default1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-default1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-default1s2c.pdf Binary files differindex 260a6282ba..74776bd2ea 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-default1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-default1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-default2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-default2s1c.pdf Binary files differindex 3d5f4377ee..c84effcb2b 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-default2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-default2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-default2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-default2s2c.pdf Binary files differindex d466e2179b..214edd0ef7 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-default2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-default2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-inner2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-inner2s2c.pdf Binary files differindex 1e13a5e1ab..3664e14647 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-inner2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-inner2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-outer2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-outer2s2c.pdf Binary files differindex 1b8d66e290..8b12502d6f 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-outer2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-outer2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/multi-right1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/multi-right1s1c.pdf Binary files differindex a8a8056975..39fbfbf793 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/multi-right1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/multi-right1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/odd1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/odd1s1c.pdf Binary files differindex 0908145860..2cc3a2f1b6 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/odd1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/odd1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/odd1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/odd1s2c.pdf Binary files differindex 27cc4be057..ea14d642b3 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/odd1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/odd1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf Binary files differindex ac6484c820..fdfe911f30 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/odd2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/odd2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/odd2s2c.pdf Binary files differindex bddaaecf37..8916a62dea 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/odd2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/odd2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/outer1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/outer1s2c.pdf Binary files differindex e926458cdd..20b9309053 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/outer1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/outer1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/outer2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/outer2s1c.pdf Binary files differindex 23c92ad30d..449a372b49 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/outer2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/outer2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/outer2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/outer2s2c.pdf Binary files differindex 5997deace9..f092b614a1 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/outer2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/outer2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-after1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-after1s1c.pdf Binary files differindex 8f67ed240b..7b0e2c3f58 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-after1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-after1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-after2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-after2s2c.pdf Binary files differindex 7240e55163..fa884c9d46 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-after2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-after2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-default1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-default1s1c.pdf Binary files differindex 6189a0ea8f..6acb89ccd1 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-default1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-default1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-default1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-default1s2c.pdf Binary files differindex cd70ea4e50..d1c7d7b0d0 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-default1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-default1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-default2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-default2s1c.pdf Binary files differindex 4b151eb8f3..fec2b721cf 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-default2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-default2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-default2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-default2s2c.pdf Binary files differindex 05f7c0e9f7..06cb4d9dc5 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-default2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-default2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-even2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-even2s1c.pdf Binary files differindex 09e8027acf..c1fb0fc94d 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-even2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-even2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-inner2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-inner2s2c.pdf Binary files differindex d7fbd32893..8e4ebfe2ff 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-inner2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-inner2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-odd2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-odd2s1c.pdf Binary files differindex ecb6472ccd..60a73caf48 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-odd2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-odd2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-right1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-right1s1c.pdf Binary files differindex 8ac96d2e13..f0b80bcd5c 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-right1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-right1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/paper-twocolcaption-after2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/paper-twocolcaption-after2s2c.pdf Binary files differindex f145bdefa2..80afb86f22 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/paper-twocolcaption-after2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/paper-twocolcaption-after2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/right1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/right1s1c.pdf Binary files differindex e585dff5eb..7f05564f49 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/right1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/right1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/right1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/right1s2c.pdf Binary files differindex cfc459300c..1c117348a0 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/right1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/right1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/right2s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/right2s1c.pdf Binary files differindex f37d485bff..17f2378168 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/right2s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/right2s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/right2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/right2s2c.pdf Binary files differindex 570aba2bf1..fae4047e16 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/right2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/right2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-after1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-after1s1c.pdf Binary files differindex def06949e3..04d809ad3d 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-after1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-after1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-after2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-after2s2c.pdf Binary files differindex 2a21a7ad39..55d63a81c9 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-after2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-after2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-default1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-default1s1c.pdf Binary files differindex 40ea9808b8..c5ff14df2a 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-default1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-default1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-default1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-default1s2c.pdf Binary files differindex 7351e0324c..cf3eeb2e37 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-default1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-default1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-default2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-default2s2c.pdf Binary files differindex e6d47d3ab1..2e264d6fef 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-default2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-default2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-right1s1c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-right1s1c.pdf Binary files differindex 3685009311..591ffc1f24 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-right1s1c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-right1s1c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-right1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-right1s2c.pdf Binary files differindex 0867cbe1a5..678fa315a9 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-right1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-right1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/sub-right2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/sub-right2s2c.pdf Binary files differindex 74a2bc4931..7732433c50 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/sub-right2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/sub-right2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/wide1s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/wide1s2c.pdf Binary files differindex d48f9d3fd9..198249a15b 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/wide1s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/wide1s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf b/macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf Binary files differindex b7471e3946..fb2b1ca1e9 100644 --- a/macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf +++ b/macros/latex/contrib/hvfloat/doc/examples/wide2s2c.pdf diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf Binary files differindex be06de69ef..be10a26587 100644 --- a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf +++ b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.tex b/macros/latex/contrib/hvfloat/doc/hvfloat.tex index 0ef8f5d852..1ab2adddaa 100644 --- a/macros/latex/contrib/hvfloat/doc/hvfloat.tex +++ b/macros/latex/contrib/hvfloat/doc/hvfloat.tex @@ -1,4 +1,4 @@ -%% $Id: hvfloat.tex 723 2023-05-17 17:27:20Z herbert $ +%% $Id: hvfloat.tex 774 2023-10-16 13:44:29Z herbert $ \listfiles \errorcontextlines=100 \documentclass[twoside,paper=a4,usegeometry]{scrartcl} @@ -138,6 +138,20 @@ \def\DBS{{\ttfamily\textbackslash\textbackslash}} + +\def\MarginNote#1{% + \expandafter\marginnote\expandafter{#1\\\checkoddpage\ifoddpage oddpage\else evenpage\fi\\ + \if@twocolumn + 2col, + \if@firstcolumn + 1.col + \else + 2.col + \fi + \else + 1col, + \fi}} + \makeatother \newcommand\Larg [1]{{\normalfont\itshape#1\/}} @@ -174,7 +188,6 @@ \marginnote{\fbox{\shortstack{float\\#1}}}\fi } - \begin{document} \title{Package \texttt{hvfloat}\\ Controlling captions, fullpage and doublepage floats\\ver \hvFloatFileVersion} @@ -397,6 +410,7 @@ There are the following keywords: \Lkeyword{FULLPAGE} & false & \rowvsp Use the full paper width/height for the object.\\ \Lkeyword{doublePage} & false & \rowvsp Use the text area on a doublepage with additional text.\\ \Lkeyword{doublePAGE} & false & \rowvsp Use the text area on a doublepage without additional text.\\ +\Lkeyword{doubleFullPage} & false & \rowvsp Use the paperwidth on a doublepage with additional text.\\ \Lkeyword{doubleFULLPAGE} & false & \rowvsp Use the paperwidth on a doublepage without additional text.\\ \Lkeyword{forceLeft} & false & \rowvsp In some cases a doublepage float starts on an odd page. With \Lkeyword{forceLeft} it uses only one \Lcs{afterpage} instead of two to force a start on an even page. \\ @@ -432,7 +446,7 @@ or \Lenv{table} environment, f.ex.: \normalsize -\marginnote{Fig.~\ref{fig:0}} +\MarginNote{Fig.~\ref{fig:0}} \hvFloat{figure}{\includegraphics{images/rose}}{Without any keywords (only the \texttt{fbox} package option)}{fig:0} Code for figure \ref{fig:0}: @@ -441,7 +455,7 @@ Code for figure \ref{fig:0}: \end{lstlisting} -\marginnote{Tab.~\ref{tab:0}} +\MarginNote{Tab.~\ref{tab:0}} \hvFloat[capPos=top]{table}{% \begin{tabularx}{\textwidth}{l|l|X} \rmfamily Name & Type & Description\\\hline @@ -492,7 +506,7 @@ floating environments like \Lenv{figure} or \Lenv{table}: {Default caption width setting, which is the natural width with respect to the current linewidth.}{fig:width0} \end{lstlisting} -\marginnote{Fig.~\ref{fig:width0}} +\MarginNote{Fig.~\ref{fig:width0}} \hvFloat[floatPos=!htb]{figure}{\includegraphics{images/rose}}% {Default caption width setting, which is the natural width with respect to the current linewidth.}{fig:width0} @@ -517,7 +531,7 @@ minus the width of the object and the space between object and caption, which is the separation between object and caption, and the current linewidth.}{fig:width1} \end{lstlisting} -\marginnote{Fig.~\ref{fig:width1}} +\MarginNote{Fig.~\ref{fig:width1}} \hvFloat[floatPos=!htb,capPos=after,objectFrame]{figure}{\includegraphics[scale=1.5]{images/rose}}% {Caption right beside with a \emph{natural} width, which is given by the width of the object, the separation between object and caption, and the current linewidth.}{fig:width1} @@ -539,7 +553,7 @@ is greater than 1. in this special case \the\linewidth. Divide it by 28.82 to get cm.}{fig:width2} \end{lstlisting} -\marginnote{Fig.~\ref{fig:width2}} +\MarginNote{Fig.~\ref{fig:width2}} \hvFloat[floatPos=!htb,capWidth=0.9]{figure}{\includegraphics{images/rose}}% {Caption below with a width of 0.9 of the current line width (column width), which is in this special case \the\linewidth. Divide it by 28.82 to get cm.}{fig:width2} @@ -561,7 +575,7 @@ If not then the width is set to the possible value between object and margin: by the macro to the maximal width.}{fig:width3} \end{lstlisting} -\marginnote{Fig.~\ref{fig:width3}} +\MarginNote{Fig.~\ref{fig:width3}} \hvFloat[floatPos=!htb,capPos=after,capWidth=0.9]{figure}{\includegraphics[scale=1.5]{images/rose}}% {Caption right beside with a width setting of \texttt{0.9\textbackslash linewidth} which is too big for this example and therefore corrected by the macro to the maximal width.}{fig:width3} @@ -594,7 +608,7 @@ real sense if you want to put a rotated caption beside the object. if it is a very small object.}{fig:width5} \end{lstlisting} -\marginnote{Fig.~\ref{fig:width5}} +\MarginNote{Fig.~\ref{fig:width5}} \hvFloat[floatPos=!htb,capPos=after,capWidth=h,capAngle=90,objectFrame]{figure}{\includegraphics{images/rose}}% {Caption beside with a width of the given object height which may be a problem if it is a very small object.}{fig:width5} @@ -619,7 +633,7 @@ Code for figure \ref{fig:1}: {fig:1} \end{lstlisting} -\marginnote{Fig.~\ref{fig:1}} +\MarginNote{Fig.~\ref{fig:1}} \Float[capPos=right] \hvFloat% [floatPos=htb, @@ -648,7 +662,7 @@ Code for figure \ref{fig:2}: of \texttt{capWidth=h}, which is the height of the object.}{fig:2} \end{lstlisting} -\marginnote{Fig.~\ref{fig:2}} +\MarginNote{Fig.~\ref{fig:2}} \hvFloat% [floatPos=htb, capPos=left, @@ -683,7 +697,7 @@ Code for figure \ref{fig:3}: of the image and a rotation of the caption and the object.}{fig:3} \end{lstlisting} -\marginnote{Fig.~\ref{fig:3}} +\MarginNote{Fig.~\ref{fig:3}} \hvFloat[% capWidth=h,% of \columnwidth capPos=after, @@ -712,7 +726,7 @@ Code for figure~\ref{fig:20}: an odd page.}{fig:20} \end{lstlisting} -\marginnote{Fig.~\ref{fig:20}} +\MarginNote{Fig.~\ref{fig:20}} \hvFloat[capPos=inner]{figure}{\includegraphics{images/rose}}% [Centered Caption on the inner side]{% Caption set with the parameter setting \texttt{capPos=inner}, which will be @@ -738,7 +752,7 @@ even \fi page. We now set a pagebreak at the end of the second image to see if i an odd page.}{fig:20b} \end{lstlisting} -\marginnote{Fig.~\ref{fig:20b}} +\MarginNote{Fig.~\ref{fig:20b}} \hvFloat[capPos=outer]{figure}{\includegraphics{images/rose}}% [Centered Caption on the inner side]{% Caption set with the parameter setting \texttt{capPos=outer}, which will be @@ -747,7 +761,7 @@ even \fi page. We now set a pagebreak at the end of the second image to see if i -\marginnote{Fig.~\ref{fig:21}} +\MarginNote{Fig.~\ref{fig:21}} \hvFloat[% capWidth=0.5,% of \columnwidth capPos=outer, @@ -780,7 +794,7 @@ Code for figure \ref{fig:22}: width of \texttt{0.5\textbackslash columnwidth} and \texttt{capPos=outer} }{fig:22} \end{lstlisting} -\marginnote{Fig.~\ref{fig:22}} +\MarginNote{Fig.~\ref{fig:22}} \hvFloat[% capWidth=0.5,% of \columnwidth capPos=inner, @@ -816,7 +830,7 @@ The code for figure \ref{fig:4}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:4}} +\MarginNote{Fig.~\ref{fig:4}} \hvFloat[% floatPos=htb,% capWidth=0.25,% @@ -837,7 +851,7 @@ The code for figure \ref{fig:5}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:5}} +\MarginNote{Fig.~\ref{fig:5}} \hvFloat[% floatPos=htb,% capWidth=0.25,% @@ -858,7 +872,7 @@ The code for figure \ref{fig:6}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:6}} +\MarginNote{Fig.~\ref{fig:6}} \hvFloat[% capWidth=0.25,% capPos=right,% @@ -882,7 +896,7 @@ in a minipage, the reason why it will be local to the current image.. ]{figure}{\frame{\includegraphics{images/rose}}}{\blindtext}{fig:66} \end{lstlisting} -\marginnote{Fig.~\ref{fig:66}} +\MarginNote{Fig.~\ref{fig:66}} \hvFloat[% capPos=right, capFormat={labelsep=newline,justification=RaggedRight,font={small,it},labelfont=bf} @@ -912,7 +926,7 @@ The code for figure \ref{fig:7}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:7}} +\MarginNote{Fig.~\ref{fig:7}} \hvFloat[% capWidth=0.25,% capPos=right,% @@ -928,7 +942,7 @@ The code for figure \ref{fig:7}: The same with \Lkeyset{capPos=left}: -\marginnote{Fig.~\ref{fig:700}} +\MarginNote{Fig.~\ref{fig:700}} \hvFloat[% capWidth=0.25,% capPos=left,% @@ -954,7 +968,7 @@ The code for figure \ref{fig:8}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:8}} +\MarginNote{Fig.~\ref{fig:8}} \hvFloat[% capWidth=0.25,% capPos=before,% @@ -983,7 +997,7 @@ The code for figure \ref{fig:70}: the option \texttt{wide}.}{fig:70} \end{lstlisting} -\marginnote{Fig.~\ref{fig:70}} +\MarginNote{Fig.~\ref{fig:70}} \hvFloat[% wide, capPos=right,% @@ -1008,7 +1022,7 @@ The code for figure \ref{fig:80}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:80}} +\MarginNote{Fig.~\ref{fig:80}} \hvFloat[wide, capPos=left,% capVPos=top,% @@ -1030,7 +1044,7 @@ Caption at top and inner beside the float and object position right and the option \texttt{wide}.}{fig:81} \end{lstlisting} -\marginnote{Fig.~\ref{fig:81}} +\MarginNote{Fig.~\ref{fig:81}} \hvFloat[wide, capPos=inner, capVPos=top, @@ -1053,7 +1067,7 @@ the option \texttt{wide}.}{fig:811} \end{lstlisting} -\marginnote{Fig.~\ref{fig:811}} +\MarginNote{Fig.~\ref{fig:811}} \hvFloat[wide, capPos=inner, capVPos=top, @@ -1077,7 +1091,7 @@ the option \texttt{wide}.}{fig:812} %\Float[capPos=outer] \begingroup -\marginnote{Fig.~\ref{fig:812}} +\MarginNote{Fig.~\ref{fig:812}} \captionsetup{justification=RaggedRight} \hvFloat[wide, capPos=outer, @@ -1103,7 +1117,7 @@ the caption to the left, center, or right of the full width which is linewidth a \end{lstlisting} -\marginnote{Fig.~\ref{label}} +\MarginNote{Fig.~\ref{label}} \hvFloat[capPos=bottom,capWidth=l,wide,capHPos=right]{figure} {\includegraphics[width=0.49\hvWideWidth]{images/CTAN}\quad \includegraphics[width=0.49\hvWideWidth]{images/CTAN}} @@ -1206,7 +1220,7 @@ Code for figure \ref{fig:9}: The float can also be put to the left or to the right (above/below in landscape) with the \Lkeyset{objectPos=l} parameter -\marginnote{Fig.~\ref{fig:9}} +\MarginNote{Fig.~\ref{fig:9}} \hvFloat[% floatPos=p, capPos=bottom, @@ -1235,7 +1249,7 @@ The code for figure \ref{fig:10}: degrees.\blindtext}{fig:10} \end{lstlisting} -\marginnote{Fig.~\ref{fig:10}} +\MarginNote{Fig.~\ref{fig:10}} \hvFloat[% floatPos=p,% capWidth=h,% @@ -1279,7 +1293,7 @@ Some nonsense text after the preceding \emph{non floating} object. Some nonsense text before the following \emph{non floating} object. -\marginnote{Fig.~\ref{fig:11}} +\MarginNote{Fig.~\ref{fig:11}} \hvFloat[% nonFloat,% capWidth=0.25,% @@ -1353,7 +1367,7 @@ The code for table \ref{table:1} and \ref{table:2} is: \hvblindtext -\marginnote{Tab.~\ref{table:2}} +\MarginNote{Tab.~\ref{table:2}} \hvFloat[% floatPos=hb, useOBox=true, @@ -1365,7 +1379,7 @@ The code for table \ref{table:1} and \ref{table:2} is: In this case leave the third parameter empty. -\marginnote{Tab.~\ref{table:1}} +\MarginNote{Tab.~\ref{table:1}} \hvFloat[% floatPos=!hb, capPos=top, @@ -1373,7 +1387,7 @@ In this case leave the third parameter empty. -\marginnote{Tab.~\ref{table:2}} +\MarginNote{Tab.~\ref{table:2}} \hvFloat[% floatPos=!htb,% useOBox=true,% @@ -1406,7 +1420,7 @@ The code for figure \ref{fig:text}: \end{lstlisting} -\marginnote{Fig.~\ref{fig:text}} +\MarginNote{Fig.~\ref{fig:text}} \hvFloat[% onlyText=true,% capAngle=90,% @@ -2604,12 +2618,21 @@ of the paper area and top of the text area. The user has to scale the image to be sure that the object will not be greater than \verb|2\paperwidth|. The caption can only be under the right part of the object. The will be \emph{no additional text} on the double page. +\item[\Lkeyword{doubleFullPage}] A splitted object with or without a caption on the left or right below of a double page +image. The object can +fill the complete double page. +The user has to scale the image to be sure that the object will not be greater than \verb|2\paperwidth|. + \item[\Lkeyword{doubleFULLPAGE}] A splitted object with or without a caption on the right or below of a double page. The object can fill the complete double page. The user has to scale the image to be sure that the object will not be greater than \verb|2\paperwidth|. A caption will be rotated and written \emph{over} the object, or if possible, at the right. The user has to take care for a correct text color. \end{description} + + + + \subsection{\Lkeyword{doubleFULLPAGE}} The scaling of the image is left to the user. If the proportion of the object doesn't fit 2*paperwidth/paperheight, then there can be a white part on the top or bottom of the object. A pagenumber will not be printed. In this documentation you'll @@ -2630,7 +2653,7 @@ even page and following text will be placed \emph{before} the object. {fig:doubleFULLPAGE0} \end{lstlisting} -\marginnote{Fig.~\ref{fig:doubleFULLPAGE0}} +\MarginNote{Fig.~\ref{fig:doubleFULLPAGE0}} \hvFloat[doubleFULLPAGE,capPos=right,capAngle=90]% {figure}% {\includegraphics[height=\paperheight]{images/r+j2}}% @@ -2641,11 +2664,11 @@ even page and following text will be placed \emph{before} the object. The parameter is \texttt{doubleFULLPAGE}}% {fig:doubleFULLPAGE0} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext It is also possible to take a bind correction into account with e.g. @@ -2665,7 +2688,7 @@ in the inner margin on both pages. {fig:doubleFULLPAGE0a} \end{lstlisting} -\marginnote{Fig.~\ref{fig:doubleFULLPAGE0a}} +\MarginNote{Fig.~\ref{fig:doubleFULLPAGE0a}} \hvFloat[doubleFULLPAGE,capPos=after,bindCorr=5mm]% {figure}% {\includegraphics[height=2\paperwidth]{images/r+j3}}% @@ -2676,11 +2699,11 @@ in the inner margin on both pages. The parameter is \texttt{doubleFULLPAGE}}% {fig:doubleFULLPAGE0a} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext @@ -2695,7 +2718,7 @@ in the inner margin on both pages. {fig:doubleFULLPAGE1} \end{lstlisting} -\marginnote{Fig.~\ref{fig:doubleFULLPAGE1}} +\MarginNote{Fig.~\ref{fig:doubleFULLPAGE1}} \hvFloat[doubleFULLPAGE,capPos=right]% {figure}% {\includegraphics[height=\paperheight]{images/rheinsberg-1000}}% @@ -2705,7 +2728,7 @@ in the inner margin on both pages. The parameter is \texttt{doubleFULLPAGE}}% {fig:doubleFULLPAGE1} -\Blindtext \Blindtext +\hvBlindtext \hvBlindtext Placing the caption on the image itself is not the best solution. With the optional arguments @@ -2737,7 +2760,7 @@ and the right part on page~\pageref{bar-2}. All three labels points to the same \hvFloatSetDefaults -\marginnote{Fig.~\ref{foo}} +\MarginNote{Fig.~\ref{foo}} \hvFloat[doubleFULLPAGE,capPos=after]% {figure}% {\includegraphics[doubleFULLPAGE]{images/rheinsberg-1000}}% @@ -2747,15 +2770,15 @@ and the right part on page~\pageref{bar-2}. All three labels points to the same The parameter is \texttt{doubleFULLPAGE}}% {foo} -\Blindtext %\Blindtext +\hvBlindtext %\hvBlindtext \hvblindtext \hvblindtext -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext \begin{lstlisting} \hvFloat[doubleFULLPAGE,capPos=before]% @@ -2769,7 +2792,7 @@ and the right part on page~\pageref{bar-2}. All three labels points to the same {bar} \end{lstlisting} -\marginnote{Fig.~\ref{bar}} +\MarginNote{Fig.~\ref{bar}} \hvFloat[doubleFULLPAGE,capPos=before]% {figure}% {\includegraphics[height=\paperheight,width=2\paperwidth,keepaspectratio=false]{images/rheinsberg-1000}}% @@ -2779,9 +2802,9 @@ and the right part on page~\pageref{bar-2}. All three labels points to the same The parameter is \texttt{doubleFULLPAGE}}% {bar} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext \hvblindtext @@ -2804,7 +2827,7 @@ There will be pagenumbers and a caption can be rotated on the right of the objec \end{lstlisting} -\marginnote{Fig. \ref{fig:doublePAGE0}} +\MarginNote{Fig. \ref{fig:doublePAGE0}} \hvFloat[doublePAGE]% {figure}% {\includegraphics[width=\dimexpr2\textwidth+2in]{images/seiser}}% @@ -2818,9 +2841,9 @@ There will be pagenumbers and a caption can be rotated on the right of the objec \hvblindtext \hvblindtext -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext \subsection{\Lkeyword{doublePage}} With this option the object also starts at the left top of the text area. @@ -2842,7 +2865,7 @@ and the rest of the text area is filled with text. \hvFloatSetDefaults -\marginnote{Fig. \ref{fig:doublePage0sH}} +\MarginNote{Fig. \ref{fig:doublePage0sH}} \hvFloat[doublePage,sameHeight]% {figure}% {\includegraphics[doublefullPage]{images/sonne-meer}}% @@ -2853,13 +2876,13 @@ and the rest of the text area is filled with text. The parameter is \texttt{doublePage}}% {fig:doublePage0sH} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext \hvblindtext -\Blindtext +\hvBlindtext \hvblindtext @@ -2879,7 +2902,7 @@ and the rest of the text area is filled with text. \hvFloatSetDefaults -\marginnote{Fig. \ref{fig:doublePage1}} +\MarginNote{Fig. \ref{fig:doublePage1}} \hvFloat[doublePage,capPos=right,capVPos=top]% {figure}% {\includegraphics[width=2\textwidth]{images/sonne-meer}}% @@ -2890,13 +2913,13 @@ and the rest of the text area is filled with text. The parameter is \texttt{doublePage}}% {fig:doublePage1} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext @@ -2916,7 +2939,7 @@ and the rest of the text area is filled with text. \hvFloatSetDefaults -\marginnote{Fig. \ref{fig:doublePage0sH2}} +\MarginNote{Fig. \ref{fig:doublePage0sH2}} \hvFloat[doublePage,bindCorr=inner ]% {figure}% @@ -2928,14 +2951,91 @@ and the rest of the text area is filled with text. The parameter is \texttt{doublePage}}% {fig:doublePage0sH2} -\Blindtext +\hvBlindtext + +\hvBlindtext + +\hvBlindtext -\Blindtext -\Blindtext +%\hvBlindtext + +%\hvBlindtext + +\subsection{\Lkeyword{doubleFullPage}} +This places an image over the complete width of two pages (2\Ldim{paperwidth}) without +modifying the height of the object. The caption can be placed on the the left or right side +of the object. + + +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage000} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doublePage000}} +\hvFloat[doubleFullPage,capWidth=n,capPos=left]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the left side.]% + {A caption for a double-sided image that will be placed on the left side of the + doublepage part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage000} + +\hvBlindtext + +\hvBlindtext + +\hvBlindtext + +\hvBlindtext + +\hvBlindtext +\begin{lstlisting} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage001} +\end{lstlisting} + + +\MarginNote{Fig. \ref{fig:doublePage001}} +\hvFloat[doubleFullPage,capWidth=n,sameHeight,capPos=right]% + {figure}% + {\includegraphics[doubleFullPage]{images/sonne-meer}}% + [A doublepage image with a caption on the right side of the right part.]% + {A caption for a double-sided image that will be placed on the right side of the + right-hand part of the illustration. The illustration begins on the left edge of + the paper. A short form is used for the LOF. + The parameter is \texttt{doublePage}}% + {fig:doublePage001} + +\hvBlindtext + +\hvBlindtext +\hvBlindtext +\hvBlindtext + +\hvBlindtext + @@ -2978,7 +3078,7 @@ Artikel gesamt & 2 & 6 & 13 & 8 & 4 & 3 & 5 & 4 & 0 & 6 & 3 & 5 &23 &10 & 8 & 15 \bottomrule \end{tabular}} -\Blindtext +\hvBlindtext \hvFloat[doublePage,capPos=right,capVPos=top,floatCapSep=12pt]% {table}% @@ -3031,9 +3131,9 @@ Artikel gesamt & 2 & 6 & 13 & 8 & 4 & 3 & 5 & 4 & 0 & 6 & 3 & 5 &23 &10 & 8 & 15 The parameter is \texttt{doublePage}}% {tab:doublePage3} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext \section{References to the page}\label{varioref} @@ -3134,9 +3234,9 @@ optional package options to set the global placement: \usepackage[figure=tb,table=t]{hvfloat-fps} \end{verbatim} -%\Blindtext +%\hvBlindtext -\Blindtext +\hvBlindtext %\hvFloatSetDefaults \hvFloat[FULLPAGE]{figure}% @@ -3147,14 +3247,16 @@ optional package options to set the global placement: {demo:fullpage} -\Blindtext +\hvBlindtext -\Blindtext +\hvBlindtext + +\hvBlindtext -\printindex \clearpage +\printindex %\appendix diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc new file mode 100644 index 0000000000..a39a994c76 --- /dev/null +++ b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc @@ -0,0 +1,130 @@ +%% Herbert Voss <hvoss@tug.org> +%% Copyright (C) 2023 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% +%% ||1in+evenside --- |1in+oddside ---|| Image is 2\paperwidth wide, height is variable or user set +% +\def\do@hvFloat@doubleFullPage#1{% image on left and right page with caption before/below/right/after + % #1-> not used, caption always below lefr or below right + \setcounter{topnumber}{1}% + \setcounter{dbltopnumber}{1}% + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% +% \ifx\hvSet@capPos\hv@Right\else\ifx\hvSet@capPos\hv@Left\else +% \let\hvSet@capPos\hv@Right +% \fi\fi + \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi + \ifx\hv@subcaption@format\@empty\else + \expandafter + \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter + {\hv@subcaption@format}% + \fi + \let\c@hv@tempCNTfigA\c@figure + \let\c@hv@tempCNTtabA\c@table +% \checkoddpage + \ifoddpage + \if@twocolumn + \if@firstcolumn + \afterpage{afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% 2nd Col and newpage + \else + \do@hvFloat@doubleFullPage@ObjectAndCaption% odd, 2nd col -> no newpage + \fi + \else % onecol + \afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}% oddpage->newpage + \fi % end \if@twocolumn + \else% evenpage + \if@twocolumn + \if@firstcolumn + \afterpage{\afterpage{\afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}}% ->2nd Col left page and newpage + \else + \afterpage{\afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% ->newpage ( 2columns) + \fi + \else % onecol + \afterpage{\afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% evenpage->newpage->newpage + \fi % end \if@twocolumn + \fi% main ifoddpage + \endgroup% started at main macro \hvFloat +} + +\def\do@hvFloat@doubleFullPage@ObjectAndCaption{% + \begin{\hv@floatType*}[t] + \hv@set@noverticalSpace + \hfuzz=\maxdimen + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection% + \savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-\baselineskip-\parskip+1.5\lineskip}% no interlineskip + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% + \ifx\hv@label\@empty + \else + \ifx\hv@floatType\hv@figure + \global\refstepcounter{hv@tempCNTfigA}% + \else + \global\refstepcounter{hv@tempCNTtabA}% before caption + \fi + \label{\hv@label}% + \fi + \ifx\hvSet@capPos\hv@Left % left side a caption + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \else + \ifhv@global@sameHeight + \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv@longCap}}}% +% \vspace{-2pt}% + \fi + \fi + \hv@reset@noverticalSpace + \end{\hv@floatType*}% + % start right half of the image ----------------- RIGHT + \begin{\hv@floatType*}[t] + \hv@set@noverticalSpace + \hfuzz=\maxdimen +% \let\c@hv@tempCNTfigA\c@figure +% \let\c@hv@tempCNTtabA\c@table + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection + \savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-\baselineskip-\parskip+1.5\lineskip}% no interlineskip + \hspace*{\the\dimexpr-1in-\oddsidemargin+\hvSet@bindCorrection}% + \clipbox*{\the\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% + \ifx\hv@label\@empty + \else + \ifx\hv@floatType\hv@figure + \global\refstepcounter{hv@tempCNTfigA}% + \else + \global\refstepcounter{hv@tempCNTtabA}% before caption + \fi + \label{\hv@label}% + \fi + \ifx\hvSet@capPos\hv@Left % left side a caption + \ifhv@global@sameHeight + \par\noindent\phantom{\parbox{\textwidth}{\caption*{\hv@longCap}}}% +% \vspace{-2pt}% + \fi + \else + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \fi + \hv@reset@noverticalSpace + \end{\hv@floatType*}% +} diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc new file mode 100644 index 0000000000..e5e0ead4bb --- /dev/null +++ b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc @@ -0,0 +1,474 @@ +%% Herbert Voss <hvoss@tug.org> +%% Copyright (C) 2023 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% +%% ||1in+evenside --- |1in+oddside ---|| +% +\def\do@hvFloat@doubleFULLPAGE#1{% image on left and right page with caption before/below/right/after + % #1-> 0/1 caption under/right + \hvfloat@typeout{>>> do@hvFloat@doubleFULLPAGE: #1}% + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi + \ifx\hv@subcaption@format\@empty\else + \expandafter + \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter + {\hv@subcaption@format}% + \fi + \ifx\hvSet@capPos\hv@After \global\hv@@capPos=1 + \else + \ifx\hvSet@capPos\hv@Before \global\hv@@capPos=0 + \else + \global\hv@@capPos=2 % other caption type + \fi\fi + %\checkoddpage + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \global\hv@tempWidthA=\dimexpr-\oddsidemargin-1in-\parindent+\hvSet@bindCorrection% the width of the right side offset + \global\hv@tempWidthB=\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection% + \global\hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection% +% \savebox\hv@leftBox{\clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}% +% \savebox\hv@rightBox{\clipbox*{\the\hv@leftPageObjectWidth{} \depth{} \width{} \height}{\usebox\hvObjectBox}}% +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifoddpage + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage}% + \ifcase\hv@@capPos % =0 Caption before + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before (0)}% + \if@twocolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn}% + \if@firstcolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/firstcolumn}% + \ifhv@twoColumnCaption + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/twoColumnCaption}% + \set@Normal@Bottom@Caption* + \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore}% + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/oneColCaption}% + \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}% + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/secondcolumn}% + \set@Normal@Bottom@Caption + \do@hvFloat@doubleFULLPAGE@CaptionBefore + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/onecolumn}% + \set@Normal@Bottom@Caption + \do@hvFloat@doubleFULLPAGE@CaptionBefore + \fi + \or % =1 Caption after + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after (1)}% + \ifhv@twoColumnCaption + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption (1)}% + \if@firstcolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/firstcolumn (1)}% + \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol}% + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/secondcolumn (1)}% + \do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/oneColCaption (1)}% + \if@twocolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn (1)}% + \if@firstcolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption after/twoColCaption/twocolumn/firstcolumn (1)}% + \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}% + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn/secondcolumn (1)}% + \do@hvFloat@doubleFULLPAGE@CaptionAfter + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/onecolumn (1)}% + \do@hvFloat@doubleFULLPAGE@CaptionAfter + \fi + \fi + \else% \ifcase >1 all other Captions + \if@twocolumn + \if@firstcolumn + \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}% + \else + \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}% + \fi + \else % \if@twocolumn + \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}% + \fi + \fi% \ifcase + \else% we have an even page + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage (1 -- \thepage)}% + \ifcase\hv@@capPos% Before + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before (0 -- \thepage)}% + \if@twocolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn (0 -- \thepage)}% + \if@firstcolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn/firstcolumn (0 -- \thepage)}% + \ifhv@twoColumnCaption + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/firstcolumn/twocolCap (0 -- \thepage)}% + \afterpage{\afterpage\set@Normal@Bottom@Caption*\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}% + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2 -> evenpage/caption before/twocolumn/firstcolumn/oneColCap (0 -- \thepage)}% + \afterpage{\afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}}% + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/secondcolumn (0 -- \thepage)}% + \afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}% + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption before/onecolumn (0 -- \thepage)}% + \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}% + \fi + \or % capPos after + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after (1 -- \thepage)}% + \if@twocolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn (1 -- \thepage)}% + \if@firstcolumn + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/firstcolumn (1 -- \thepage)}% + \ifhv@twoColumnCaption + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/twoColCaption (1 -- \thepage)}% + \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}% + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/oneColCaption (1 -- \thepage)}% + \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}% + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/secondcolumn (1 -- \thepage)}% + \ifhv@twoColumnCaption + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/twoColCaption (1 -- \thepage)}% + \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}% + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/oneColCaption (1 -- \thepage)}% + \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}% + \fi + \fi + \else + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/onecolumn (1 -- \thepage)}% + \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}% + \fi + \else % \ifcase Any other caption + \if@twocolumn + \if@firstcolumn + \afterpage{\afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}}% + \else + \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}% + \fi + \else + \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}% + \fi + \fi% \ifcase + \fi% main ifoddpage + \endgroup% started at main macro \hvFloat +} + +\def\set@Normal@Bottom@Caption{\@ifnextchar*\set@Normal@Bottom@CaptionStar\set@Normal@Bottom@Caption@} +\def\set@Normal@Bottom@Caption@{% + \begin{\hv@floatType}[!b] + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \ifhv@separatorLine\drawSepLine\fi +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \end{\hv@floatType}% +} +\def\set@Normal@Bottom@CaptionStar*{% + \begin{\hv@floatType*}[!b] + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \ifhv@separatorLine\drawSepLine\fi +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \end{\hv@floatType*}% +} + +\def\do@hvFloat@doubleFULLPAGE@CaptionBefore{% + \afterpage{% + \hfuzz=\maxdimen + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \thispagestyle{empty}% + \ifx\hv@floatType\hv@figure + \global\refstepcounter{hv@tempCNTfigB}% + \else + \global\refstepcounter{hv@tempCNTtabB}% before caption + \fi + \expandafter\label\expandafter{\hv@label}% + \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% + \afterpage{% + \if@twocolumn\newpage\null\newpage\fi + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \thispagestyle{empty}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox + \hspace*{\hv@tempWidthA}% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% + \ifx\hv@floatType\hv@figure + \global\refstepcounter{hv@tempCNTfigA}% + \else + \global\refstepcounter{hv@tempCNTtabA}% before caption + \fi + \expandafter\label\expandafter{\hv@label-2}% + \newpage\if@twocolumn\null\newpage\fi + }}% +} + +\newif\ifhv@temp + +\def\do@hvFloat@doubleFULLPAGE@CaptionAfter{% + \afterpage{% + \hfuzz=\maxdimen + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \thispagestyle{empty}% + \clipbox*{0 \the\dp\hvObjectBox{} \the\hv@leftPageObjectWidth{} \the\ht\hvObjectBox}{\usebox\hvObjectBox}% + \ifx\hv@floatType\hv@figure + \refstepcounter{hv@tempCNTfigA}% + \else + \refstepcounter{hv@tempCNTtabA}% before caption + \fi + \ifx\hv@label\@empty\else\label{\hv@label}\fi + \newpage\if@twocolumn\null\newpage\fi + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \thispagestyle{empty}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox + \hspace*{\hv@tempWidthA}% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% + \ifx\hv@floatType\hv@figure + \refstepcounter{hv@tempCNTfigB}% + \else + \refstepcounter{hv@tempCNTtabB}% before caption + \fi + \expandafter\label\expandafter{\hv@label-2}% + \newpage\if@twocolumn\null\newpage\fi + \begin{\hv@floatType}[!b] + \ifhv@separatorLine\drawSepLine\fi +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \end{\hv@floatType}% + }% +} + +\def\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{% + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: start} % + \afterpage{% + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage start} % + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \thispagestyle{empty}% + \ifx\hv@floatType\hv@figure + \refstepcounter{hv@tempCNTfigA}% + \else + \refstepcounter{hv@tempCNTtabA}% before caption + \fi + \ifx\hv@label\@empty\else\label{\hv@label}\fi + \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% + \newpage\if@twocolumn\null\newpage\fi + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: insert newpage} % + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \thispagestyle{empty}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox + \hspace*{\hv@tempWidthA}% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% + \ifx\hv@floatType\hv@figure + \refstepcounter{hv@tempCNTfigB}% + \else + \refstepcounter{hv@tempCNTtabB}% before caption + \fi + \ifx\hv@label\@empty\else\label{\hv@label-2}\fi + \newpage\if@twocolumn\null\newpage\fi + \begin{\hv@floatType*}[!b] + \hv@twoColumnCaptiontrue + \ifhv@separatorLine\drawSepLine\fi +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \end{\hv@floatType*}% + }% + \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage done} % +} + +\def\do@hvFloat@doubleFULLPAGE@CaptionOther#1{% + \afterpage{% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \thispagestyle{empty}% + \hfuzz=\maxdimen + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \clipbox*{0 \depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% + \ifx\hv@floatType\hv@figure + \refstepcounter{hv@tempCNTfigA}% + \else + \refstepcounter{hv@tempCNTtabA}% before caption + \fi + \label{\hv@label}% + \afterpage{% + \if@twocolumn\newpage\if@firstcolumn\else\null\newpage\fi\fi + \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \thispagestyle{empty}% + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox + \hspace*{\hv@tempWidthA}% + \clipbox*{\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% + \ifx\hv@floatType\hv@figure + \refstepcounter{hv@tempCNTfigB}% + \else + \refstepcounter{hv@tempCNTtabB}% before caption + \fi + \expandafter\label\expandafter{\hv@label-2}% + \savebox\hvCaptionBox{\parbox{0.9\ht\hvObjectBox}{\captionof*{\hv@floatType}{\hv@longCap}}}% + \ifnum#1 > 0\relax % rotation with 90° +% \setlength\hv@tempWidthB{\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection}% + \ifdim\hv@tempWidthB < 2\paperwidth + \rotatebox[origin=lb]{90}{\makebox[\paperheight][c]{\parbox{0.8\ht\hvObjectBox}{% +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + }}}% rotatebox + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \else% ifdim: no space left on page + \put(-2\ht\hvCaptionBox,0.5\ht\hvObjectBox){\makebox(0,0){\rotatebox{90}{\minipage{\textwidth}\centering + \parbox{0.8\textwidth}{% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + }% + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \endminipage}}}% + \fi + \else% ifnum, caption not rotated, under or over the right page + \hv@tempWidthA=\the\dimexpr\paperheight-\ht\hvObjectBox\relax + \ifdim\hv@tempWidthA > \ht\hvCaptionBox + \else + \put(\the\dimexpr1.5\paperwidth-\wd\hvObjectBox-\hvSet@bindCorrection,\the\dimexpr\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip){\makebox[0pt][c]{\parbox{\textwidth}{%% +% \expandafter\captionsetup\expandafter{\hv@caption@format}% + \ifhv@onlyText + \hv@longCap + \else + \ifx\hv@shortCap\@empty + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \fi + }}}% + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + \fi + \fi% end \ifnum#1>0 + \newpage\if@twocolumn\null\newpage\fi + }% + }% +} + + +\def\setBottomCaption{% + \ifhv@twoColumnCaption + \begin{\hv@floatType*}[!b]% + \else + \begin{\hv@floatType}[!b]% + \fi + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \ifhv@separatorLine\drawSepLine\fi + \par + \usebox\hvCaptionBox + \ifhv@twoColumnCaption + \end{\hv@floatType*}% + \else + \end{\hv@floatType}% + \fi +} + +\def\setPageObject{% + \hvfloat@typeout{>>>> setPageObject/start environment ...}% + \afterpage{\checkoddpage}% + \ifhv@star + \begin{\hv@floatType*}[p]% + \else + \begin{\hv@floatType}[p]% + \fi + \hv@tempcnt=\@floatpenalty% suppress "float too big" message + \hfuzz=\maxdimen + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \ifhv@FULLPAGE + \hvfloat@typeout{>>>> setPageObject/FULLPAGE}% + \@floatpenalty=\z@% no message that float too large + \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-0.5\baselineskip% + \if@twoside + \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside}% + \ifoddpage + \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/oddpage (\thepage)}% + \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% + \else + \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/evenpage (\thepage)}% + \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% + \fi + \else + \hvfloat@typeout{>>>> setPageObject/FULLPAGE/oneside}% + \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% + \fi + \hvfloat@typeout{>>>> setPageObject/FULLPAGE/set pagestyle empty}% + \AtBeginShipoutNext{\thispagestyle{empty}}% to prevent heading/footer +% \afterpage{\AddToHookNext{shipout/after}{\thispagestyle{empty}}}% + \usebox\hvObjectBox + \else + \hvfloat@typeout{>>>> setPageObject/NO FULLPAGE}% + \usebox\hvObjectBox + \fi + \hvfloat@typeout{>>>> setPageObject/stop environment}% + \ifhv@star + \end{\hv@floatType*}% + \else + \end{\hv@floatType}% + \fi + \@floatpenalty=\hv@tempcnt% restore +} diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc new file mode 100644 index 0000000000..c930479fae --- /dev/null +++ b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc @@ -0,0 +1,114 @@ +%% +%% Herbert Voss <hvoss@tug.org> +%% Copyright (C) 2023 +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN archives +%% in directory macros/latex/base/lppl.txt. +%% +%% ||1in+evenside --- |1in+oddside ---|| +% + +\def\do@hvFloat@doublePAGE#1{% image on left and right page with caption on the right ---------------------------------- + % #1-> 0/1 caption under/right +% \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}% +% \global\setlength\hv@leftPageObjectWidth{\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}% + \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \expandafter\global\expandafter\savebox\expandafter\hv@boxLeftPage\expandafter{\clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}% + \expandafter\global\expandafter\savebox\expandafter\hv@boxRightPage\expandafter{\clipbox*{\hv@leftPageObjectWidth{} -\depth{} \width{} \height}{\usebox\hvObjectBox}}% + %\checkoddpage + \ifoddpage + \hvfloat@typeout{do@hvFloat@doublePAGE: oddpage}% + \if@twocolumn + \if@firstcolumn + \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->firstcolumn}% + \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% + \else + \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->secondcolumn}% + \do@hvFloat@doublePAGECaptionRight{#1}% + \fi + \else + \do@hvFloat@doublePAGECaptionRight{#1}% + \fi + \else + \hvfloat@typeout{do@hvFloat@doublePAGE: evenpage}% + \if@twocolumn + \if@firstcolumn + \afterpage{\afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}}% + \else + \afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}% + \fi + \else + \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% onecolumn/left page + \fi + \fi + \endgroup% startet at main macro +} +% +\def\do@hvFloat@doublePAGECaptionRight#1{% image on left and right page with caption on the right ---------------------------------- + % #1-> 0/1 caption under/right + \hvfloat@typeout{do@hvFloat@doublePAGECaptionRight->start}% + \afterpage{% + \hfuzz=\maxdimen + \expandafter\hvFloatSet\expandafter{\hv@save@setting}% + \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi + \ifx\hv@subcaption@format\@empty\else + \expandafter + \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter + {\hv@subcaption@format}% + \fi + \ifhv@useOBox + \global\let\hvObjectBox\hvOBox + \else + \global\savebox\hvObjectBox{\hv@floatObject}% + \fi + \noindent + \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection% + \global\hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection% + \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% + \ifx\hv@label\@empty\else\label{\hv@label}\fi + \null\newpage\if@twocolumn\null\newpage\fi + \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% + \noindent + \hspace*{\dimexpr-\hv@tempWidthA}% + \clipbox*{\the\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% + \ifx\hv@label\@empty\else\label{\hv@label-2}\fi + \begingroup + \ifnum#1>0 + \medskip + \ifdim\dp\hvObjectBox > \z@ + \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \ifx\relax\hv@shortCap\relax + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + }}% + \else + \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% + \ifx\relax\hv@shortCap\relax + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + }}% + \fi + \else% caption not rotated + \par\noindent + \parbox{\textwidth}{% + \expandafter\hvFloatSet\expandafter{\hv@save@setting,capFormat={font={tiny},labelsep=newline}}% + \ifx\relax\hv@shortCap\relax + \captionof{\hv@floatType}{\hv@longCap}% + \else + \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% + \fi + \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi + }% + \fi + \endgroup + \newpage\if@twocolumn\null\newpage\fi + }% +} +% diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty index be6acdf49b..41c8042a4c 100644 --- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty +++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty @@ -1,4 +1,4 @@ -%% $Id: hvfloat.sty 723 2023-05-17 17:27:20Z herbert $ +%% $Id: hvfloat.sty 774 2023-10-16 13:44:29Z herbert $ %% %% %% IMPORTANT NOTICE: @@ -16,8 +16,8 @@ %% `hvfloat' offers rotating of captions and objects for floats %% \NeedsTeXFormat{LaTeX2e} -\def\fileversion{2.46} -\def\filedate{2023/05/16} +\def\fileversion{2.47} +\def\filedate{2023/10/16} \ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)] \let\hvFloatFileVersion\fileversion % @@ -189,6 +189,7 @@ \newif\ifhv@fullpage \newif\ifhv@FULLPAGE +\newif\ifhv@doubleFullPage \newif\ifhv@doubleFULLPAGE \newif\ifhv@doublePAGE \newif\ifhv@doublePage @@ -209,33 +210,39 @@ \define@key{hvSet}{fullpage}[true]{% \global\@nameuse{hv@fullpage#1}% \hv@doublePagefalse\hv@doublePAGEfalse\hv@doubleFULLPAGEfalse - \hv@FULLPAGEfalse + \hv@FULLPAGEfalse\hv@doubleFullPagefalse \hvfloat@typeout{>>>>Option fullpage}% } \define@key{hvSet}{FULLPAGE}[true]{% \global\@nameuse{hv@FULLPAGE#1}% \hv@doublePagefalse\hv@doublePAGEfalse\hv@doubleFULLPAGEfalse - \hv@fullpagefalse + \hv@fullpagefalse\hv@doubleFullPagefalse \hvfloat@typeout{>>>>Option FULLPAGE}% } \define@key{hvSet}{doubleFULLPAGE}[true]{% \global\@nameuse{hv@doubleFULLPAGE#1}% \hv@doublePagefalse\hv@doublePAGEfalse - \hv@fullpagefalse\hv@FULLPAGEfalse + \hv@fullpagefalse\hv@FULLPAGEfalse\hv@doubleFullPagefalse \hvfloat@typeout{>>>>Option doubleFULLPAGE->True / doublePAGE->False}% } \define@key{hvSet}{doublePAGE}[true]{% \global\@nameuse{hv@doublePAGE#1}% \hv@doublePagefalse\hv@doubleFULLPAGEfalse - \hv@fullpagefalse\hv@FULLPAGEfalse + \hv@fullpagefalse\hv@FULLPAGEfalse\hv@doubleFullPagefalse \hvfloat@typeout{>>>>Option doublePAGE->True / doubleFULLPAGE->False}% } \define@key{hvSet}{doublePage}[true]{% \global\@nameuse{hv@doublePage#1}% \hv@doublePAGEfalse\hv@doubleFULLPAGEfalse - \hv@fullpagefalse\hv@FULLPAGEfalse + \hv@fullpagefalse\hv@FULLPAGEfalse\hv@doubleFullPagefalse \hvfloat@typeout{>>>>Option doublepage->True / doubleFULLPAGE->False}% } +\define@key{hvSet}{doubleFullPage}[true]{% + \global\@nameuse{hv@doubleFullPage#1}% +% \hv@doublePAGEfalse\hv@doubleFULLPAGEfalse\hv@doublePagefalse +% \hv@fullpagefalse\hv@FULLPAGEfalse + \hvfloat@typeout{>>>>Option doublefullPage->True / doubleFULLPAGE->False}% +} \define@key{hvSet}{bindCorr}[0pt]{% \def\hv@temp{#1}% \ifx\hv@temp\hv@Inner @@ -397,11 +404,21 @@ \def\Gin@eheight{\paperheight}% \Gin@boolkey{false}{iso}% } +\define@key{Gin}{doubleFullPage}[true]{% + \def\Gin@ewidth{2\paperwidth}% +% \def\Gin@eheight{\paperheight}% + \Gin@boolkey{false}{iso}% +} \define@key{Gin}{doublefullPage}[true]{% \def\Gin@ewidth{\the\dimexpr2\paperwidth-2in-2\evensidemargin}% % \def\Gin@eheight{\paperheight}% \Gin@boolkey{true}{iso}% } +\define@key{Gin}{doubleFullPagebindCorr}[true]{% + \def\Gin@ewidth{\the\dimexpr2\paperwidth-2\hvSet@bindCorrection\relax}% +% \def\Gin@eheight{\paperheight}% + \Gin@boolkey{false}{iso}% +} \define@key{Gin}{doubleFULLPAGEbindCorr}[true]{% \def\Gin@ewidth{\the\dimexpr2\paperwidth-2\hvSet@bindCorrection\relax}% \def\Gin@eheight{\paperheight}% @@ -500,8 +517,8 @@ \def\hvFloat{\@ifnextchar*% Main macro - {\global\hv@startrue\hv@maxImageWidth=\textwidth\hvFloat@i}% - {\global\hv@starfalse\hv@maxImageWidth=\columnwidth\hvFloat@i*}% + {\checkoddpage\global\hv@startrue\hv@maxImageWidth=\textwidth\hvFloat@i}% + {\checkoddpage\global\hv@starfalse\hv@maxImageWidth=\columnwidth\hvFloat@i*}% } \def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}} @@ -618,20 +635,26 @@ \setlength\hvCapWidth{\textheight}% \expandafter\do@hvFloat@doubleFULLPAGE\@@temp% fullpage with caption rotated or under on an odd page \else - \ifhv@doublePAGE - \hvfloat@typeout{>>>> do@@hvFloat: doublePAGE true}% - \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page + \ifhv@doubleFullPage + \hvfloat@typeout{>>>> do@@hvFloat: doubleFullPage true}% + \setlength\hvCapWidth{\textwidth}% + \expandafter\do@hvFloat@doubleFullPage\@@temp% fullpage with caption under an odd page \else - \ifhv@doublePage - \hvfloat@typeout{>>>> do@@hvFloat: doublePage true}% - \expandafter\do@hvFloat@doublePage\@@temp% fullpage with caption rotated or under on an odd page + \ifhv@doublePAGE + \hvfloat@typeout{>>>> do@@hvFloat: doublePAGE true}% + \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page \else - \ifhv@inMargin - \hvfloat@typeout{>>>> do@@hvFloat: inMargin true}% - \do@@@hvFloatInMargin + \ifhv@doublePage + \hvfloat@typeout{>>>> do@@hvFloat: doublePage true}% + \expandafter\do@hvFloat@doublePage\@@temp% fullpage with caption rotated or under on an odd page \else - \hvfloat@typeout{>>>> do@@hvFloat: no special caption}% - \do@@@hvFloat + \ifhv@inMargin + \hvfloat@typeout{>>>> do@@hvFloat: inMargin true}% + \do@@@hvFloatInMargin + \else + \hvfloat@typeout{>>>> do@@hvFloat: no special caption}% + \do@@@hvFloat + \fi \fi \fi \fi @@ -804,7 +827,7 @@ \begin{\hv@floatType}% Start the floating environment \fi \fi - \checkoddpage + %%\checkoddpage \ifx\hvSet@objectPos\hv@Right\raggedleft\fi \ifx\hvSet@objectPos\hv@Center \ifhv@nonFloat\hspace*{\fill}\else\centering\fi @@ -1074,7 +1097,7 @@ \ifx\hvSet@floatPos\@empty \else\@namedef{fps@\hv@floatType}{\hvSet@floatPos}\fi \noindent \begingroup% Start the nonfloat part - \checkoddpage + %\checkoddpage \ifx\hvSet@objectPos\hv@Right \raggedleft\fi \ifx\hvSet@objectPos\hv@Center \hspace*{\fill}\fi \ifx\hvSet@objectPos\hv@Outer \ifoddpage\raggedleft\fi\fi @@ -1231,7 +1254,7 @@ \fi \fi \hvfloat@typeout{>>>do@@@@hvFloat: hv@capPos is \the\hv@@capPos}% - \checkoddpage + %\checkoddpage \hvfloat@typeout{>>>do@@@@hvFloat: set floattype}% \set@caption@object{\hv@floatType}% set caption and object into a box \ifcase\hv@@capPos% caption before object 0-> _always_ left @@ -1426,13 +1449,13 @@ \endminipage}% \savebox\hvObjectBox{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% \ifnum#1=0\relax % no rotation, caption below - \hvfloat@typeout{Texthöhe: \the\textheight}% - \hvfloat@typeout{Objekthöhe: \the\ht\hvObjectBox}% - \hvfloat@typeout{Captionhöhe: \the\ht\hvCaptionBox}% +% \hvfloat@typeout{Texthöhe: \the\textheight}% +% \hvfloat@typeout{Objekthöhe: \the\ht\hvObjectBox}% +% \hvfloat@typeout{Captionhöhe: \the\ht\hvCaptionBox}% \@tempdima=\dimexpr\ht\hvObjectBox+\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip +\textfloatsep\relax%+\floatsep\relax - \hvfloat@typeout{Summe: \the\@tempdima}% +% \hvfloat@typeout{Summe: \the\@tempdima}% \ifdim\@tempdima > \dimexpr\textheight-\hv@minTextlines\relax - \hvfloat@typeout{hvfloat: switched to floattype p}% +% \hvfloat@typeout{hvfloat: switched to floattype p}% \hv@switchTypetrue \fi \fi @@ -1440,7 +1463,7 @@ \ifhv@forceOutput \do@hvFloat@doublePAGECaptionRight{#1}% no cheque \else - \checkoddpage + %\checkoddpage \ifoddpage \hvfloat@typeout{do@hvFloat@doublePage:oddpage}% \if@twocolumn @@ -1456,7 +1479,7 @@ \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}%}% \fi \else - \hvfloat@typeout{do@hvFloat@doublePage:oddpage->twocolumn->secondcolumn}% +% \hvfloat@typeout{do@hvFloat@doublePage:oddpage->twocolumn->secondcolumn}% \ifhv@tugboat \do@hvFloat@doublePageCaptionRight{#1}% \else @@ -1494,7 +1517,8 @@ \ifhv@switchType \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% \else - \afterpage{\afterpage{\do@hvFloat@doublePageCaptionRight{#1}}}% + %\afterpage{ + \afterpage{\do@hvFloat@doublePageCaptionRight{#1}}%}% \fi \fi \else% onecolumn @@ -1526,7 +1550,7 @@ } % \def\do@hvFloat@doublePageCaptionRightObjectLeft#1{% left part of the object - \begin{\hv@floatType}[!t] + \begin{\hv@floatType*}[!t] \hvfloat@typeout{>>>doublePage: begin with left side of the object \hv@floatObject}% \hv@set@noverticalSpace \hfuzz=\maxdimen @@ -1552,7 +1576,7 @@ \fi \hv@reset@noverticalSpace \hvfloat@typeout{>>>doublePage: end with left side of the object \hv@floatObject}% - \end{\hv@floatType}% + \end{\hv@floatType*}% } \def\do@hvFloat@doublePageCaptionRightObjectRight#1{% right part of the object @@ -1633,579 +1657,12 @@ % \newsavebox\hv@boxLeftPage \newsavebox\hv@boxRightPage -% -%% ||1in+evenside --- |1in+oddside ---|| -% -\def\do@hvFloat@doublePAGE#1{% image on left and right page with caption on the right ---------------------------------- - % #1-> 0/1 caption under/right -% \global\setlength\hv@tempWidthA{\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection}% -% \global\setlength\hv@leftPageObjectWidth{\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection}% - \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \expandafter\global\expandafter\savebox\expandafter\hv@boxLeftPage\expandafter{\clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}% - \expandafter\global\expandafter\savebox\expandafter\hv@boxRightPage\expandafter{\clipbox*{\hv@leftPageObjectWidth{} -\depth{} \width{} \height}{\usebox\hvObjectBox}}% - \checkoddpage - \ifoddpage - \hvfloat@typeout{do@hvFloat@doublePAGE: oddpage}% - \if@twocolumn - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->firstcolumn}% - \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% - \else - \hvfloat@typeout{do@hvFloat@doublePAGE: ifoddpage->twocolumn->secondcolumn}% - \do@hvFloat@doublePAGECaptionRight{#1}% - \fi - \else - \do@hvFloat@doublePAGECaptionRight{#1}% - \fi - \else - \hvfloat@typeout{do@hvFloat@doublePAGE: evenpage}% - \if@twocolumn - \if@firstcolumn - \afterpage{\afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}}% - \else - \afterpage{\afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}}% - \fi - \else - \afterpage{\do@hvFloat@doublePAGECaptionRight{#1}}% onecolumn/left page - \fi - \fi - \endgroup% startet at main macro -} -% -\def\do@hvFloat@doublePAGECaptionRight#1{% image on left and right page with caption on the right ---------------------------------- - % #1-> 0/1 caption under/right - \hvfloat@typeout{do@hvFloat@doublePAGECaptionRight->start}% - \afterpage{% - \hfuzz=\maxdimen - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi - \ifx\hv@subcaption@format\@empty\else - \expandafter - \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter - {\hv@subcaption@format}% - \fi - \ifhv@useOBox - \global\let\hvObjectBox\hvOBox - \else - \global\savebox\hvObjectBox{\hv@floatObject}% - \fi - \noindent - \global\hv@tempWidthA=\the\dimexpr1in+\oddsidemargin-\hvSet@bindCorrection% - \global\hv@leftPageObjectWidth=\the\dimexpr\paperwidth-1in-\evensidemargin-\hvSet@bindCorrection% - \clipbox*{0 -\depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% - \ifx\hv@label\@empty\else\label{\hv@label}\fi - \null\newpage\if@twocolumn\null\newpage\fi - \expandafter\global\expandafter\savebox\expandafter\hvObjectBox\expandafter{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \noindent - \hspace*{\dimexpr-\hv@tempWidthA}% - \clipbox*{\the\hv@leftPageObjectWidth{} -\depth{} \width{} \height{}}{\usebox\hvObjectBox}% - \ifx\hv@label\@empty\else\label{\hv@label-2}\fi - \begingroup - \ifnum#1>0 - \medskip - \ifdim\dp\hvObjectBox > \z@ - \rotatebox[origin=c]{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% - \ifx\relax\hv@shortCap\relax - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - }}% - \else - \rotatebox{90}{\parbox{\the\dimexpr\ht\hvObjectBox+\dp\hvObjectBox}{% - \ifx\relax\hv@shortCap\relax - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - }}% - \fi - \else% caption not rotated - \par\noindent - \parbox{\textwidth}{% - \expandafter\hvFloatSet\expandafter{\hv@save@setting,capFormat={font={tiny},labelsep=newline}}% - \ifx\relax\hv@shortCap\relax - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - }% - \fi - \endgroup - \newpage\if@twocolumn\null\newpage\fi - }% -} -% -%% ||1in+evenside --- |1in+oddside ---|| -% -\def\do@hvFloat@doubleFULLPAGE#1{% image on left and right page with caption before/below/right/after - % #1-> 0/1 caption under/right - \hvfloat@typeout{>>> do@hvFloat@doubleFULLPAGE: #1}% - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \ifx\hv@caption@format\@empty\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi - \ifx\hv@subcaption@format\@empty\else - \expandafter - \captionsetup\expandafter[\expandafter s\expandafter u\expandafter b\expandafter]\expandafter - {\hv@subcaption@format}% - \fi - \ifx\hvSet@capPos\hv@After \global\hv@@capPos=1 - \else - \ifx\hvSet@capPos\hv@Before \global\hv@@capPos=0 - \else - \global\hv@@capPos=2 % other caption type - \fi\fi - \checkoddpage - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \global\hv@tempWidthA=\dimexpr-\oddsidemargin-1in-\parindent+\hvSet@bindCorrection% the width of the right side offset - \global\hv@tempWidthB=\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection% - \global\hv@leftPageObjectWidth=\dimexpr\paperwidth-\hvSet@bindCorrection% -% \savebox\hv@leftBox{\clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}}% -% \savebox\hv@rightBox{\clipbox*{\the\hv@leftPageObjectWidth{} \depth{} \width{} \height}{\usebox\hvObjectBox}}% -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifoddpage - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage}% - \ifcase\hv@@capPos % =0 Caption before - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before (0)}% - \if@twocolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn}% - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/firstcolumn}% - \ifhv@twoColumnCaption - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/twoColumnCaption}% - \set@Normal@Bottom@Caption* - \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore}% - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption before/twocolumn/firstcolumn/oneColCaption}% - \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}% - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/twocolumn/secondcolumn}% - \set@Normal@Bottom@Caption - \do@hvFloat@doubleFULLPAGE@CaptionBefore - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption before/onecolumn}% - \set@Normal@Bottom@Caption - \do@hvFloat@doubleFULLPAGE@CaptionBefore - \fi - \or % =1 Caption after - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after (1)}% - \ifhv@twoColumnCaption - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption (1)}% - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/firstcolumn (1)}% - \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol}% - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/secondcolumn (1)}% - \do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/oneColCaption (1)}% - \if@twocolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn (1)}% - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> oddpage/caption after/twoColCaption/twocolumn/firstcolumn (1)}% - \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}% - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/twocolumn/secondcolumn (1)}% - \do@hvFloat@doubleFULLPAGE@CaptionAfter - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: oddpage/caption after/twoColCaption/onecolumn (1)}% - \do@hvFloat@doubleFULLPAGE@CaptionAfter - \fi - \fi - \else% \ifcase >1 all other Captions - \if@twocolumn - \if@firstcolumn - \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}% - \else - \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}% - \fi - \else % \if@twocolumn - \do@hvFloat@doubleFULLPAGE@CaptionOther{#1}% - \fi - \fi% \ifcase - \else% we have an even page - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage (1 -- \thepage)}% - \ifcase\hv@@capPos% Before - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before (0 -- \thepage)}% - \if@twocolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn (0 -- \thepage)}% - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption before/twocolumn/firstcolumn (0 -- \thepage)}% - \ifhv@twoColumnCaption - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/firstcolumn/twocolCap (0 -- \thepage)}% - \afterpage{\afterpage\set@Normal@Bottom@Caption*\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}% - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2 -> evenpage/caption before/twocolumn/firstcolumn/oneColCap (0 -- \thepage)}% - \afterpage{\afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}}% - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage^2->evenpage/caption before/twocolumn/secondcolumn (0 -- \thepage)}% - \afterpage{\afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore{#1}}}% - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption before/onecolumn (0 -- \thepage)}% - \afterpage{\set@Normal@Bottom@Caption\do@hvFloat@doubleFULLPAGE@CaptionBefore}% - \fi - \or % capPos after - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after (1 -- \thepage)}% - \if@twocolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn (1 -- \thepage)}% - \if@firstcolumn - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/firstcolumn (1 -- \thepage)}% - \ifhv@twoColumnCaption - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/twoColCaption (1 -- \thepage)}% - \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}% - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/twocolumn/firstcolumn/oneColCaption (1 -- \thepage)}% - \afterpage{\afterpage\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}% - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: evenpage/caption after/twocolumn/secondcolumn (1 -- \thepage)}% - \ifhv@twoColumnCaption - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/twoColCaption (1 -- \thepage)}% - \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{#1}}}% - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage1 2 -> evenpage/caption after/twocolumn/secondcolumn/oneColCaption (1 -- \thepage)}% - \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter{#1}}}% - \fi - \fi - \else - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE: afterpage -> evenpage/caption after/onecolumn (1 -- \thepage)}% - \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionAfter}% - \fi - \else % \ifcase Any other caption - \if@twocolumn - \if@firstcolumn - \afterpage{\afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}}% - \else - \afterpage{\afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}}% - \fi - \else - \afterpage{\do@hvFloat@doubleFULLPAGE@CaptionOther{#1}}% - \fi - \fi% \ifcase - \fi% main ifoddpage - \endgroup% started at main macro \hvFloat -} +\input{hvfloat-2.inc} -\def\set@Normal@Bottom@Caption{\@ifnextchar*\set@Normal@Bottom@CaptionStar\set@Normal@Bottom@Caption@} -\def\set@Normal@Bottom@Caption@{% - \begin{\hv@floatType}[!b] - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \ifhv@separatorLine\drawSepLine\fi -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \end{\hv@floatType}% -} -\def\set@Normal@Bottom@CaptionStar*{% - \begin{\hv@floatType*}[!b] - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \ifhv@separatorLine\drawSepLine\fi -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \end{\hv@floatType*}% -} +\input{hvfloat-1.inc} -\def\do@hvFloat@doubleFULLPAGE@CaptionBefore{% - \afterpage{% - \hfuzz=\maxdimen - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip - \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% - \thispagestyle{empty}% - \ifx\hv@floatType\hv@figure - \global\refstepcounter{hv@tempCNTfigB}% - \else - \global\refstepcounter{hv@tempCNTtabB}% before caption - \fi - \expandafter\label\expandafter{\hv@label}% - \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% - \afterpage{% - \if@twocolumn\newpage\null\newpage\fi - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \thispagestyle{empty}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox - \hspace*{\hv@tempWidthA}% - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% - \ifx\hv@floatType\hv@figure - \global\refstepcounter{hv@tempCNTfigA}% - \else - \global\refstepcounter{hv@tempCNTtabA}% before caption - \fi - \expandafter\label\expandafter{\hv@label-2}% - \newpage\if@twocolumn\null\newpage\fi - }}% -} - -\newif\ifhv@temp - -\def\do@hvFloat@doubleFULLPAGE@CaptionAfter{% - \afterpage{% - \hfuzz=\maxdimen - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip - \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% - \thispagestyle{empty}% - \clipbox*{0 \the\dp\hvObjectBox{} \the\hv@leftPageObjectWidth{} \the\ht\hvObjectBox}{\usebox\hvObjectBox}% - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigA}% - \else - \refstepcounter{hv@tempCNTtabA}% before caption - \fi - \ifx\hv@label\@empty\else\label{\hv@label}\fi - \newpage\if@twocolumn\null\newpage\fi - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \thispagestyle{empty}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox - \hspace*{\hv@tempWidthA}% - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigB}% - \else - \refstepcounter{hv@tempCNTtabB}% before caption - \fi - \expandafter\label\expandafter{\hv@label-2}% - \newpage\if@twocolumn\null\newpage\fi - \begin{\hv@floatType}[!b] - \ifhv@separatorLine\drawSepLine\fi -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \end{\hv@floatType}% - }% -} - -\def\do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol{% - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: start} % - \afterpage{% - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage start} % - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% no interlineskip - \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% - \thispagestyle{empty}% - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigA}% - \else - \refstepcounter{hv@tempCNTtabA}% before caption - \fi - \ifx\hv@label\@empty\else\label{\hv@label}\fi - \clipbox*{0 0 \the\hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% - \newpage\if@twocolumn\null\newpage\fi - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: insert newpage} % - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \thispagestyle{empty}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox - \hspace*{\hv@tempWidthA}% - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \clipbox*{\the\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigB}% - \else - \refstepcounter{hv@tempCNTtabB}% before caption - \fi - \ifx\hv@label\@empty\else\label{\hv@label-2}\fi - \newpage\if@twocolumn\null\newpage\fi - \begin{\hv@floatType*}[!b] - \hv@twoColumnCaptiontrue - \ifhv@separatorLine\drawSepLine\fi -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \end{\hv@floatType*}% - }% - \hvfloat@typeout{do@hvFloat@doubleFULLPAGE@CaptionAfterTwoCol: afterpage done} % -} - -\def\do@hvFloat@doubleFULLPAGE@CaptionOther#1{% - \afterpage{% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox - \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \thispagestyle{empty}% - \hfuzz=\maxdimen - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \clipbox*{0 \depth{} \hv@leftPageObjectWidth{} \height}{\usebox\hvObjectBox}% - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigA}% - \else - \refstepcounter{hv@tempCNTtabA}% before caption - \fi - \label{\hv@label}% - \afterpage{% - \if@twocolumn\newpage\if@firstcolumn\else\null\newpage\fi\fi - \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}% - \thispagestyle{empty}% - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep-\baselineskip-\parskip+1.5\lineskip}% -0.5\paperheight+0.5\ht\hvObjectBox - \hspace*{\hv@tempWidthA}% - \clipbox*{\hv@leftPageObjectWidth{} \dp\hvObjectBox{} \wd\hvObjectBox{} \ht\hvObjectBox}{\usebox\hvObjectBox}% - \ifx\hv@floatType\hv@figure - \refstepcounter{hv@tempCNTfigB}% - \else - \refstepcounter{hv@tempCNTtabB}% before caption - \fi - \expandafter\label\expandafter{\hv@label-2}% - \savebox\hvCaptionBox{\parbox{0.9\ht\hvObjectBox}{\captionof*{\hv@floatType}{\hv@longCap}}}% - \ifnum#1 > 0\relax % rotation with 90° -% \setlength\hv@tempWidthB{\dimexpr\ht\hvCaptionBox+\wd\hvObjectBox+2\hvSet@bindCorrection}% - \ifdim\hv@tempWidthB < 2\paperwidth - \rotatebox[origin=lb]{90}{\makebox[\paperheight][c]{\parbox{0.8\ht\hvObjectBox}{% -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - }}}% rotatebox - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \else% ifdim: no space left on page - \put(-2\ht\hvCaptionBox,0.5\ht\hvObjectBox){\makebox(0,0){\rotatebox{90}{\minipage{\textwidth}\centering - \parbox{0.8\textwidth}{% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - }% - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \endminipage}}}% - \fi - \else% ifnum, caption not rotated, under or over the right page - \hv@tempWidthA=\the\dimexpr\paperheight-\ht\hvObjectBox\relax - \ifdim\hv@tempWidthA > \ht\hvCaptionBox - \else - \put(\the\dimexpr1.5\paperwidth-\wd\hvObjectBox-\hvSet@bindCorrection,\the\dimexpr\ht\hvCaptionBox+\abovecaptionskip+\belowcaptionskip){\makebox[0pt][c]{\parbox{\textwidth}{%% -% \expandafter\captionsetup\expandafter{\hv@caption@format}% - \ifhv@onlyText - \hv@longCap - \else - \ifx\hv@shortCap\@empty - \captionof{\hv@floatType}{\hv@longCap}% - \else - \captionof{\hv@floatType}[\hv@shortCap]{\hv@longCap}% - \fi - \fi - }}}% - \ifx\hv@label\@empty\else\label{\hv@label-cap}\fi - \fi - \fi% end \ifnum#1>0 - \newpage\if@twocolumn\null\newpage\fi - }% - }% -} - - -\def\setBottomCaption{% - \ifhv@twoColumnCaption - \begin{\hv@floatType*}[!b]% - \else - \begin{\hv@floatType}[!b]% - \fi - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \ifhv@separatorLine\drawSepLine\fi - \par - \usebox\hvCaptionBox - \ifhv@twoColumnCaption - \end{\hv@floatType*}% - \else - \end{\hv@floatType}% - \fi -} - -\def\setPageObject{% - \hvfloat@typeout{>>>> setPageObject/start environment ...}% - \afterpage{\checkoddpage}% - \ifhv@star - \begin{\hv@floatType*}[p]% - \else - \begin{\hv@floatType}[p]% - \fi - \hv@tempcnt=\@floatpenalty% suppress "float too big" message - \hfuzz=\maxdimen - \expandafter\hvFloatSet\expandafter{\hv@save@setting}% - \ifhv@FULLPAGE - \hvfloat@typeout{>>>> setPageObject/FULLPAGE}% - \@floatpenalty=\z@% no message that float too large - \vspace*{\the\dimexpr-1in-\voffset-\topmargin-\headheight-\headsep}%-0.5\baselineskip% - \if@twoside - \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside}% - \ifoddpage - \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/oddpage (\thepage)}% - \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% - \else - \hvfloat@typeout{>>>> setPageObject/FULLPAGE/twoside/evenpage (\thepage)}% - \hspace*{\the\dimexpr-\evensidemargin-\parindent-1in}% - \fi - \else - \hvfloat@typeout{>>>> setPageObject/FULLPAGE/oneside}% - \hspace*{\the\dimexpr-\oddsidemargin-\parindent-1in}% - \fi - \hvfloat@typeout{>>>> setPageObject/FULLPAGE/set pagestyle empty}% - \AtBeginShipoutNext{\thispagestyle{empty}}% to prevent heading/footer -% \afterpage{\AddToHookNext{shipout/after}{\thispagestyle{empty}}}% - \usebox\hvObjectBox - \else - \hvfloat@typeout{>>>> setPageObject/NO FULLPAGE}% - \usebox\hvObjectBox - \fi - \hvfloat@typeout{>>>> setPageObject/stop environment}% - \ifhv@star - \end{\hv@floatType*}% - \else - \end{\hv@floatType}% - \fi - \@floatpenalty=\hv@tempcnt% restore -} +\input{hvfloat-0.inc} \ExplSyntaxOn diff --git a/macros/latex/contrib/hvlogos/Changes b/macros/latex/contrib/hvlogos/Changes index 3e81878f5a..2d194ea0f6 100644 --- a/macros/latex/contrib/hvlogos/Changes +++ b/macros/latex/contrib/hvlogos/Changes @@ -1,4 +1,5 @@ hvlogos.sty: +0.10 2023-10-16 - changed \MetaPost to \MP 0.09 2022-05-06 - changed almost all \def to \providecommand 0.08 2022-04-25 - added \mkII, \mkIV 0.07 2022-02-28 - fix for \dante and \eV diff --git a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf Binary files differindex c279a280b2..82a77a0d48 100644 --- a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf +++ b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.pdf diff --git a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex index bf2e1a54ee..7243ea6db9 100644 --- a/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex +++ b/macros/latex/contrib/hvlogos/doc/hvlogos-doc.tex @@ -161,8 +161,6 @@ want to change only the 2nd, 3rd or 4th. - - %\NewDocumentCommand\hvLaTeXTeX{ O{-0.1em} O{-0.25em} O{-0.15em} O{-0.1em} } % {\def\LaTeXTeX{(\kern#1\hologo{La}[#2]\kern#3)\kern#4\hologo{TeX}}} diff --git a/macros/latex/contrib/hvlogos/latex/hvlogos.sty b/macros/latex/contrib/hvlogos/latex/hvlogos.sty index 6fab62f878..192d438f30 100644 --- a/macros/latex/contrib/hvlogos/latex/hvlogos.sty +++ b/macros/latex/contrib/hvlogos/latex/hvlogos.sty @@ -2,7 +2,7 @@ %% %% This is file `hvlogos.sty', %% -%% Copyright (C) 2021,22 Herbert Voss +%% Copyright (C) 2021,22,23 Herbert Voss %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN archives @@ -10,7 +10,7 @@ % % % ------------------------------------- -\ProvidesPackage{hvlogos}[2022/05/06 v. 0.09 Logos (hv)] +\ProvidesPackage{hvlogos}[2023/10/16 v. 0.10 Logos (hv)] % \newif\if@dtk@newengine \@dtk@newenginetrue % @@ -149,7 +149,7 @@ \providecommand\MetaFun{\textffm{METAFUN}} \let\MFun\MetaFun \providecommand\METAPOST{\hologo{METAPOST}} -\providecommand\MetaPost{\hologo{MetaPost}} +\let\MetaPost\METAPOST \providecommand\mkII{\textsf{mkII}} \let\mkii\mkII \providecommand\mkIV{\textsf{mkIV}} diff --git a/macros/latex/contrib/stex/Makefile b/macros/latex/contrib/stex/Makefile index 43942d6051..d12908d2d4 100644 --- a/macros/latex/contrib/stex/Makefile +++ b/macros/latex/contrib/stex/Makefile @@ -4,5 +4,3 @@ MAKEDIRS = source doc all package doc: @for d in $(MAKEDIRS); do (cd $$d && $(MAKE) -$(MAKEFLAGS) $@) || exit $$?; done - ls - pdflatex test.en.tex diff --git a/macros/latex/contrib/stex/doc/packages/stex-problem.tex b/macros/latex/contrib/stex/doc/packages/stex-problem.tex index 81315415a4..75032724f5 100644 --- a/macros/latex/contrib/stex/doc/packages/stex-problem.tex +++ b/macros/latex/contrib/stex/doc/packages/stex-problem.tex @@ -1,10 +1,8 @@ \begin{sfragment}{Introduction} - The \pkg{problem} package supplies an infrastructure that allows specify problem. Problems -are text fragments that come with auxiliary functions: hints, notes, and -solutions\footnote{for the moment multiple choice problems are not supported, but may - well be in a future version}. Furthermore, we can specify how long the solution to a -given problem is estimated to take and how many points will be awarded for a perfect -solution. + The \pkg{problem} package supplies an infrastructure that allows specify problem. + Problems are text fragments that come with auxiliary functions: hints, notes, and + solutions. Furthermore, we can specify how long the solution to a given problem is + estimated to take and how many points will be awarded for a perfect solution. Finally, the \pkg{problem} package facilitates the management of problems in small files, so that problems can be re-used in multiple environment. @@ -48,7 +46,7 @@ so that problems can be re-used in multiple environment. \begin{exnote} Justify your answer \end{exnote} -\begin{solution}[for=elefants] +\begin{solution} Four, two in the front seats, and two in the back. \begin{gnote} if they do not give the justification deduct 5 pts diff --git a/macros/latex/contrib/stex/doc/stex-doc.pdf b/macros/latex/contrib/stex/doc/stex-doc.pdf Binary files differindex a978cbb2e7..1a4a1e5a14 100644 --- a/macros/latex/contrib/stex/doc/stex-doc.pdf +++ b/macros/latex/contrib/stex/doc/stex-doc.pdf diff --git a/macros/latex/contrib/stex/doc/stex-doc.tex b/macros/latex/contrib/stex/doc/stex-doc.tex index 6dbf566c2c..ff82e9457f 100644 --- a/macros/latex/contrib/stex/doc/stex-doc.tex +++ b/macros/latex/contrib/stex/doc/stex-doc.tex @@ -40,6 +40,7 @@ \end{sfragment} \begin{sfragment}{User Manual} + \let\RequirePackage\documentclass \inputref[sTeX/Documentation]{manual} \begin{sfragment}{Additional Packages} diff --git a/macros/latex/contrib/stex/doc/stex-docheader.tex b/macros/latex/contrib/stex/doc/stex-docheader.tex index b8b6313be8..34d3c93eb0 100644 --- a/macros/latex/contrib/stex/doc/stex-docheader.tex +++ b/macros/latex/contrib/stex/doc/stex-docheader.tex @@ -5,7 +5,7 @@ \usepackage[hyperref=auto,style=alphabetic]{biblatex} %\usepackage[mathhub=\stexdocpath/mh,usedeps]{stex} \usepackage[lang={en,de}]{stex} - +\usepackage[show]{ed} \usepackage{rustex} \usepackage{stex-highlighting,stexthm} @@ -36,7 +36,7 @@ \newif\ifhadtitle\hadtitlefalse -\def\stexversion{3.3.0} +\def\stexversion{3.4.0} \def\changedate{\today} \def\stextoptitle#1#2{\title{#1\thanks{Version {\stexversion} (last revised {\changedate})} }\def\thispkg{#2}} @@ -402,4 +402,5 @@ } -\AtBeginDocument{\catcode`_=8}
\ No newline at end of file +\AtBeginDocument{\catcode`_=8} + diff --git a/macros/latex/contrib/stex/doc/stex-manual.pdf b/macros/latex/contrib/stex/doc/stex-manual.pdf Binary files differindex dcc5371fad..f866203912 100644 --- a/macros/latex/contrib/stex/doc/stex-manual.pdf +++ b/macros/latex/contrib/stex/doc/stex-manual.pdf diff --git a/macros/latex/contrib/stex/doc/stex-tutorial.pdf b/macros/latex/contrib/stex/doc/stex-tutorial.pdf Binary files differindex 1c380fadde..c7740a4d90 100644 --- a/macros/latex/contrib/stex/doc/stex-tutorial.pdf +++ b/macros/latex/contrib/stex/doc/stex-tutorial.pdf diff --git a/macros/latex/contrib/stex/source/hwexam.dtx b/macros/latex/contrib/stex/source/hwexam.dtx index 003d8a3d87..783c8c2382 100644 --- a/macros/latex/contrib/stex/source/hwexam.dtx +++ b/macros/latex/contrib/stex/source/hwexam.dtx @@ -41,7 +41,7 @@ % % \begin{macrocode} %<*package> -\ProvidesExplPackage{hwexam}{2023/03/19}{3.3.0}{homework assignments and exams} +\ProvidesExplPackage{hwexam}{2023/10/13}{3.4.0}{homework assignments and exams} \RequirePackage{l3keys2e} \keys_define:nn {hwexam / pkg}{ @@ -63,7 +63,7 @@ \ExplSyntaxOn\makeatletter \input{hwexam-english.ldf} \ltx@ifpackageloaded{babel}{ - \clist_set:Nx \l_tmpa_clist {\bbl@loaded} + \clist_set:Nx \l_tmpa_clist {\exp_args:No \tl_to_str:n \bbl@loaded} \exp_args:NNx \clist_if_in:NnT \l_tmpa_clist {\detokenize{ngerman}}{ \input{hwexam-ngerman.ldf} } @@ -130,10 +130,10 @@ }\par\smallskip \textbf{ \tl_if_empty:NF \l_stex_key_given_tl { - \hwexam@kw@given:~\l_stex_key_given_tl\quad + \hwexam@kw@given :~\l_stex_key_given_tl\quad } \tl_if_empty:NF \l_stex_key_due_tl { - \hwexam@kw@due:~\l_stex_key_due_tl\quad + \hwexam@kw@due :~\l_stex_key_due_tl\quad } } \end{center} @@ -246,26 +246,6 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\testemptypage} -% \begin{macrocode} -\newcommand\testemptypage[1][]{% - \bool_if:NT \c__problems_test_bool {\ \vfill\begin{center}\hwexam@kw@testemptypage\end{center}\eject} -} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\testspace} -% \begin{macrocode} -\newcommand\testspace[1]{\bool_if:NT \c__problems_test_bool {\vspace*{#1}}} -% \end{macrocode} -% \end{macro} -% -% \begin{macro}{\testnewpage} -% \begin{macrocode} -\newcommand\testnewpage{\bool_if:NT \c__problems_test_bool {\newpage}} -% \end{macrocode} -% \end{macro} -% % % \begin{macrocode} %</package> diff --git a/macros/latex/contrib/stex/source/notesslides.dtx b/macros/latex/contrib/stex/source/notesslides.dtx index c2f9f594c9..31f012240b 100644 --- a/macros/latex/contrib/stex/source/notesslides.dtx +++ b/macros/latex/contrib/stex/source/notesslides.dtx @@ -46,7 +46,7 @@ % \begin{macrocode} %<*cls> %<@@=notesslides> -\ProvidesExplClass{notesslides}{2023/03/19}{3.3.0}{notesslides Class} +\ProvidesExplClass{notesslides}{2023/10/13}{3.4.0}{notesslides Class} \RequirePackage{l3keys2e} \str_const:Nn \c_@@_class_str {article} @@ -93,7 +93,7 @@ % now we do the same for the |notesslides| package. % \begin{macrocode} %<*package> -\ProvidesExplPackage{notesslides}{2023/03/19}{3.3.0}{notesslides Package} +\ProvidesExplPackage{notesslides}{2023/10/13}{3.4.0}{notesslides Package} \RequirePackage{l3keys2e} \keys_define:nn{notesslides / pkg}{ diff --git a/macros/latex/contrib/stex/source/problem.dtx b/macros/latex/contrib/stex/source/problem.dtx index c62a9242ba..9d503e0d52 100644 --- a/macros/latex/contrib/stex/source/problem.dtx +++ b/macros/latex/contrib/stex/source/problem.dtx @@ -19,7 +19,7 @@ % % \begin{stexmanual} % \begin{sfragment}{Problem Manual} - % \input{\stexdocpath/packages/stex-problem} +% \input{\stexdocpath/packages/stex-problem} % \end{sfragment} % \end{stexmanual} % @@ -42,7 +42,7 @@ % \begin{macrocode} %<*package> %<@@=problems> -\ProvidesExplPackage{problem}{2023/03/19}{3.3.0}{Semantic Markup for Problems} +\ProvidesExplPackage{problem}{2023/10/13}{3.4.0}{Semantic Markup for Problems} \RequirePackage{l3keys2e} \keys_define:nn { problem / pkg }{ @@ -74,6 +74,13 @@ }{ \solutionsfalse } +\newif\ifintest +\bool_if:NTF \c_@@_test_bool { + \intesttrue +}{ + \intestfalse +} + \RequirePackage{stex} % \end{macrocode} % @@ -85,7 +92,7 @@ \ExplSyntaxOn\makeatletter \input{problem-english.ldf} \ltx@ifpackageloaded{babel}{ - \clist_set:Nx \l_tmpa_clist {\bbl@loaded} + \clist_set:Nx \l_tmpa_clist {\exp_args:No \tl_to_str:n \bbl@loaded} \exp_args:NNx \clist_if_in:NnT \l_tmpa_clist {\detokenize{ngerman}}{ \input{problem-ngerman.ldf} } @@ -110,16 +117,20 @@ % internal macros. % % \begin{macrocode} +\bool_new:N \l_stex_key_autogradable_bool \stex_keys_define:nnnn{ problem }{ \tl_set:Nn \l_stex_key_pts_tl 0 \tl_set:Nn \l_stex_key_min_tl 0 \str_clear:N \l_stex_key_name_str \str_clear:N \l_stex_key_mhrepos_str + \bool_set_false:N \l_stex_key_autogradable_bool }{ pts .tl_set:N = \l_stex_key_pts_tl, min .tl_set:N = \l_stex_key_min_tl, name .str_set:N = \l_stex_key_name_str, - archive .str_set:N = \l_stex_key_mhrepos_str, + autogradable .bool_set:N = \l_stex_key_autogradable_bool, + archive .code:n = {}, + %archive .str_set:N = \l_stex_key_mhrepos_str, creators .code:n = {} %imports .tl_set:N = \l_@@_prob_imports_tl, %refnum .int_set:N = \l_@@_prob_refnum_int, @@ -142,9 +153,26 @@ % % \begin{environment}{sproblem} % \begin{macrocode} +\cs_new:Nn \_@@_activate_macros: { + \stex_reactivate_macro:N \solution + \stex_reactivate_macro:N \mcb + \stex_reactivate_macro:N \scb + \stex_reactivate_macro:N \fillinsol + \stex_reactivate_macro:N \hint + \stex_reactivate_macro:N \exnote + \stex_reactivate_macro:N \gnote +} + \newcounter{pts} \newcounter{min} +\bool_new:N \l_@@_in_problem_bool +\bool_new:N \l_@@_has_pts_bool +\bool_new:N \l_@@_has_min_bool +\bool_set_false:N \l_@@_in_problem_bool \stex_new_stylable_env:nnnnnnn {problem} {O{}}{ + \bool_if:NT \l_@@_in_problem_bool { + \msg_error:nn{stex}{error/nestedproblem} + } \cs_if_exist:NTF \l_problem_inputproblem_keys_tl { \tl_put_left:Nn \l_problem_inputproblem_keys_tl {#1,} \exp_args:Nno \stex_keys_set:nn{problem}{ @@ -154,60 +182,65 @@ \stex_keys_set:nn{problem}{#1} } \refstepcounter{sproblem} - \str_if_empty:NT \l_stex_key_name_str { - \stex_file_split_off_lang:NN \l_@@_path_seq \g_stex_current_file - \seq_get_right:NN \l_@@_path_seq \l_stex_key_name_str - } - - \exp_args:No \stex_module_setup:n \l_stex_key_name_str \stex_if_do_html:T { + \str_if_empty:NT \l_stex_key_name_str { + \stex_file_split_off_lang:NN \l_@@_path_seq \g_stex_current_file + \seq_get_right:NN \l_@@_path_seq \l_stex_key_name_str + } \exp_args:Nne \begin{stex_annotate_env} { - shtml:problem={\l_stex_current_module_str}, + shtml:problem={\l_stex_key_name_str}, shtml:language={ \l_stex_current_language_str}, - shtml:signature={\l_stex_key_sig_str} - \tl_if_empty:NF \l_stex_metatheory_uri {, - shtml:metatheory={\stex_uri_use:N \l_stex_metatheory_uri} - } + shtml:autogradable={\bool_if:NTF \l_stex_key_autogradable_bool {true}{false}} } - \stex_annotate_invisible:n{} \tl_if_empty:NF \l_stex_key_title_tl { \exp_args:No \stexdoctitle \l_stex_key_title_tl } + \stex_annotate_invisible:nn{ + shtml:problempoints={\l_stex_key_pts_tl} + }{ \l_stex_key_pts_tl } } - \stex_if_smsmode:F { - \str_set_eq:NN \thismoduleuri \l_stex_current_module_str - \tl_set_eq:NN \thismodulename \l_stex_key_name_str - \tl_set_eq:NN \thistitle \l_stex_key_title_tl - \stex_style_apply: - \addtocounter{pts}{\l_stex_key_pts_tl} - \addtocounter{min}{\l_stex_key_min_tl} - \_stex_do_id: - \_@@_record_problem: - } - \stex_reactivate_macro:N \solution - \stex_reactivate_macro:N \mcb - \stex_reactivate_macro:N \fillinsol - \stex_smsmode_do: + + \tl_set_eq:NN \thistitle \l_stex_key_title_tl + + \bool_set_true:N \l_@@_in_problem_bool + \tl_set_eq:NN \l_@@_pts_tl \l_stex_key_pts_tl + \tl_set_eq:NN \l_@@_min_tl \l_stex_key_min_tl + \tl_if_eq:NnTF \l_@@_pts_tl {0} + {\bool_set_false:N \l_@@_has_pts_bool} + {\bool_set_true:N \l_@@_has_pts_bool} + \tl_if_eq:NnTF \l_@@_min_tl {0} + {\bool_set_false:N \l_@@_has_min_bool} + {\bool_set_true:N \l_@@_has_min_bool} + \int_gzero:N \g_@@_subproblem_int + + \stex_style_apply: + \_stex_do_id: + \_@@_activate_macros: }{ - \stex_close_module: - \stex_if_smsmode:F \stex_style_apply: + \addtocounter{pts}{\l_@@_pts_tl} + \addtocounter{min}{\l_@@_min_tl} + \_@@_record_problem: + \stex_style_apply: \stex_if_do_html:T{ \end{stex_annotate_env} } }{ \par\noindent\problemheader \bool_if:NT \c_@@_pts_bool { - \marginpar{\l_stex_key_pts_tl{}~\problem@kw@points\smallskip} + \tl_if_eq:NnF \l_@@_pts_tl {0}{ + \marginpar{\l_@@_pts_tl{}~\problem@kw@pts\smallskip} + } } \bool_if:NT \c_@@_min_bool { - \marginpar{\l_stex_key_min_tl{}~\problem@kw@minutes\smallskip} + \tl_if_eq:NnF \l_@@_min_tl {0} { + \marginpar{\l_@@_min_tl{}~\problem@kw@minutes\smallskip} + } } - \\ + \par \stex_ignore_spaces_and_pars: }{ \par\bigskip % \bool_if:NT \c_@@_test_bool \pagebreak }{s} -\stex_sms_allow_env:n{sproblem} \tl_set:Nn \problemheader { \textbf{\sproblemautorefname{~}\thesproblem @@ -219,7 +252,7 @@ \cs_new_protected:Nn \_@@_record_problem: { \exp_args:NNe \iow_now:Nn \@auxout { - \problem@restore {\thesproblem}{\l_stex_key_pts_tl}{\l_stex_key_min_tl} + \problem@restore {\thesproblem}{\l_@@_pts_tl}{\l_@@_min_tl} } } @@ -227,6 +260,73 @@ % \end{macrocode} % \end{environment} % +% \begin{environment}{subproblem} +% \begin{macrocode} +\int_new:N \g_@@_subproblem_int + +\stex_new_stylable_env:nnnnnnn {subproblem} {O{}}{ + \stex_keys_set:nn{problem}{#1} + \bool_if:NF \l_@@_in_problem_bool{ + \ifstexhtml\else + \par{\bfseries WARNING~subproblem~to~be~used~in~some~problem}\par + \fi + \_@@_activate_macros: + \bool_set_true:N \l_@@_in_problem_bool + \tl_set:Nn \l_@@_pts_tl{0} + \tl_set:Nn \l_@@_min_tl{0} + } + \str_if_empty:NT \l_stex_key_name_str { + \stex_file_split_off_lang:NN \l_@@_path_seq \g_stex_current_file + \seq_get_right:NN \l_@@_path_seq \l_stex_key_name_str + } + \stex_if_do_html:T { + \str_if_empty:NT \l_stex_key_name_str { + \stex_file_split_off_lang:NN \l_@@_path_seq \g_stex_current_file + \seq_get_right:NN \l_@@_path_seq \l_stex_key_name_str + } + \exp_args:Nne \begin{stex_annotate_env} { + shtml:subproblem={\l_stex_key_name_str}, + shtml:language={ \l_stex_current_language_str}, + shtml:autogradable={\bool_if:NTF \l_stex_key_autogradable_bool {true}{false}} + } + \stex_annotate_invisible:n{} + \tl_if_empty:NF \l_stex_key_title_tl { + \exp_args:No \stexdoctitle \l_stex_key_title_tl + } + } + \int_gincr:N \g_@@_subproblem_int + \bool_if:NF \l_@@_has_pts_bool { + \tl_gset:Nx \l_@@_pts_tl {\int_eval:n {\l_@@_pts_tl + \l_stex_key_pts_tl}} + } + \bool_if:NF \l_@@_has_min_bool { + \tl_gset:Nx \l_@@_min_tl {\int_eval:n {\l_@@_min_tl + \l_stex_key_min_tl}} + } + \stex_if_smsmode:F \stex_style_apply: +}{ + \stex_if_smsmode:F \stex_style_apply: + \stex_if_do_html:T{ \end{stex_annotate_env} } +}{ + \begin{list}{}{ + \setlength\topsep{0pt} + \setlength\parsep{0pt} + \setlength\rightmargin{0pt} + }\item[\int_use:N \g_@@_subproblem_int .] + \bool_if:NT \c_@@_pts_bool { + \bool_if:NF \l_@@_has_pts_bool { + \marginpar{\smallskip\l_stex_key_pts_tl{}~\problem@kw@pts} + } + } + \bool_if:NT \c_@@_min_bool { + \bool_if:NF \l_@@_has_min_bool{ + \marginpar{\smallskip\l_stex_key_min_tl{}~\problem@kw@minutes} + } + } +}{ + \end{list} +}{} +% \end{macrocode} +% \end{environment} +% % \begin{macro}{\includeproblem} % \begin{macrocode} \stex_keys_define:nnnn{ includeproblem }{ @@ -250,10 +350,17 @@ % \begin{environment}{solution} % \begin{macrocode} \int_new:N \g_problem_id_counter +\dim_new:N \l_stex_key_testspace_dim +\stex_keys_define:nnnn{ solution }{ + \str_clear:N \l_stex_key_answerclass_str + \dim_zero:N \l_stex_key_testspace_dim +}{ + testspace .dim_set:N = \l_stex_key_testspace_dim, + answerclass .str_set:N = \l_stex_key_answerclass_str +}{id,title,style} \cs_new_protected:Nn \_@@_solution_start:n { - \str_set:Nn \l_stex_key_title_tl {#1} - \str_set:Nn \l_stex_key_id_str {#1} + \stex_keys_set:nn{ solution }{#1} \str_if_empty:NT \l_stex_key_id_str { \int_gincr:N \g_problem_id_counter \str_set:Nx \l_stex_key_id_str { @@ -262,7 +369,8 @@ } \stex_if_do_html:T{ \begin{stex_annotate_env}{ - shtml:solution=\l_stex_key_id_str + shtml:solution=\l_stex_key_id_str, + shtml:answerclass={\l_stex_key_answerclass_str} } } \stex_style_apply: @@ -275,6 +383,8 @@ \ifsolutions \_@@_solution_start:n{#1} \else + \stex_keys_set:nn{ solution }{#1} + \testspace{\l_stex_key_testspace_dim} \setbox\l_tmpa_box\vbox\bgroup \fi } @@ -293,12 +403,14 @@ \fi } }{ - \par\smallskip\hrule\smallskip - \noindent\emph{Solution\str_if_empty:NF \l_stex_key_title_tl{ - {~}\l_stex_key_title_tl + \par\smallskip\rule[.3em]{\linewidth}{0.4pt}\newline\smallskip + \noindent\emph{\problem@kw@solution\tl_if_empty:NF \l_stex_key_title_tl{ + {~}\l_stex_key_title_tl \str_if_empty:NF \l_stex_key_answerclass_str { + (Answer Class: \l_stex_key_answerclass_str) + } } :~} }{ - \par\smallskip\hrule + \par\rule[.3em]{\linewidth}{0.4pt}\newline }{} \stex_deactivate_macro:Nn \solution {sproblem~environments} @@ -318,9 +430,11 @@ % % \begin{environment}{hint} % \begin{macrocode} + +\stex_keys_define:nnnn{ problemenv }{}{}{id,title,style} + \cs_new_protected:Nn \_@@_hint_start:n { - \str_set:Nn \l_stex_key_title_tl {#1} - \str_set:Nn \l_stex_key_id_str {#1} + \stex_keys_set:nn{ problemenv }{#1} \str_if_empty:NT \l_stex_key_id_str { \int_gincr:N \g_problem_id_counter \str_set:Nx \l_stex_key_id_str { @@ -360,21 +474,21 @@ } } }{ - \par\smallskip\hrule\smallskip - \noindent\emph{Hint\str_if_empty:NF \l_stex_key_title_tl{ + \par\smallskip\rule[.3em]{\linewidth}{0.4pt}\newline\smallskip + \noindent\emph{\problem@kw@hint\tl_if_empty:NF \l_stex_key_title_tl{ {~}\l_stex_key_title_tl } :~} }{ - \par\smallskip\hrule + \par\rule[.3em]{\linewidth}{0.4pt}\newline }{} +\stex_deactivate_macro:Nn \hint {sproblem~environments} % \end{macrocode} % \end{environment} % % \begin{environment}{exnote} % \begin{macrocode} \cs_new_protected:Nn \_@@_exnote_start:n { - \str_set:Nn \l_stex_key_title_tl {#1} - \str_set:Nn \l_stex_key_id_str {#1} + \stex_keys_set:nn{ problemenv }{#1} \str_if_empty:NT \l_stex_key_id_str { \int_gincr:N \g_problem_id_counter \str_set:Nx \l_stex_key_id_str { @@ -414,26 +528,29 @@ } } }{ - \par\smallskip\hrule\smallskip - \noindent\emph{Note\str_if_empty:NF \l_stex_key_title_tl{ + \par\smallskip\rule[.3em]{\linewidth}{0.4pt}\newline\smallskip + \noindent\emph{\problem@kw@note\tl_if_empty:NF \l_stex_key_title_tl{ {~}\l_stex_key_title_tl } :~} }{ - \par\smallskip\hrule + \par\rule[.3em]{\linewidth}{0.4pt}\newline }{} +\stex_deactivate_macro:Nn \exnote {sproblem~environments} % \end{macrocode} % \end{environment} %% \begin{environment}{gnote} % \begin{macrocode} +\int_new:N \l_@@_anscls_int + \cs_new_protected:Nn \_@@_gnote_start:n { - \str_set:Nn \l_stex_key_title_tl {#1} - \str_set:Nn \l_stex_key_id_str {#1} + \stex_keys_set:nn{ problemenv }{#1} \str_if_empty:NT \l_stex_key_id_str { \int_gincr:N \g_problem_id_counter \str_set:Nx \l_stex_key_id_str { GNOTE_\int_use:N \g_problem_id_counter } } + \stex_if_do_html:T{ \begin{stex_annotate_env}{ shtml:problemgnote=\l_stex_key_id_str @@ -452,6 +569,7 @@ \setbox\l_tmpa_box\vbox\bgroup } } + \stex_reactivate_macro:N \anscls }{ \stex_if_do_html:TF{ \stex_style_apply: @@ -467,13 +585,59 @@ } } }{ - \par\smallskip\hrule\smallskip - \noindent\emph{Grading\str_if_empty:NF \l_stex_key_title_tl{ + \par\smallskip\rule[.3em]{\linewidth}{0.4pt}\newline\smallskip + \noindent\emph{\problem@kw@grading\str_if_empty:NF \l_stex_key_title_tl{ {~}\l_stex_key_title_tl } :~} }{ - \par\smallskip\hrule + \par\rule[.3em]{\linewidth}{0.4pt}\newline }{} +\stex_deactivate_macro:Nn \gnote {sproblem~environments} + + +\stex_keys_define:nnnn{ anscls }{ + \str_clear:N \l_stex_key_pts_str + \tl_clear:N \l_stex_key_feedback_tl +}{ + pts .str_set:N = \l_stex_key_pts_str, + feedback .tl_set:N = \l_stex_key_feedback_str, + update .code:n = {} +}{id} +\newcommand \anscls [2][] { + \stex_keys_set:nn{ anscls }{#1} + \str_if_empty:NT \l_stex_key_id_str { + \int_incr:N \l_@@_anscls_int + \str_set:Nx \l_stex_key_id_str { + AC\int_use:N \l_@@_anscls_int + } + } + \begin{list}{}{ + \setlength\topsep{0pt} + \setlength\parsep{0pt} + \setlength\rightmargin{0pt} + }\item[\l_stex_key_id_str] + \stex_if_do_html:TF{ + \stex_annotate:nn{ + shtml:answerclass={\l_stex_key_id_str} + \str_if_empty:NF \l_stex_key_pts_str{ + ,shtml:answerclass-pts={\l_stex_key_pts_str} + } + \str_if_empty:NF \l_stex_key_feedback_str{ + ,shtml:answerclass-feedback={\l_stex_key_feedback_str} + } + }{ + #2 + } + }{#2} + \str_if_empty:NF \l_stex_key_pts_str {\par + ~ \problem@kw@points:~\l_stex_key_pts_str + } + \str_if_empty:NF \l_stex_key_feedback_str {\par + ~ \problem@kw@feedback :~\l_stex_key_feedback_str + } + \end{list} +} +\stex_deactivate_macro:Nn \anscls {gnote~environments} % \end{macrocode} % \end{environment} % @@ -482,33 +646,55 @@ % \begin{macrocode} \def\pts#1{ \bool_if:NT \c_@@_pts_bool { - \marginpar{#1~\problem@kw@points} - } + \stex_annotate:nn{shtml:problempoints={#1}}{\marginpar{#1~\problem@kw@pts}} + }\hbox_unpack:N\c_empty_box } \def\min#1{ \bool_if:NT \c_@@_min_bool { - \marginpar{#1~\problem@kw@minutes} - } + \stex_annotate:nn{shtml:problemminutes={}}{\marginpar{#1~\problem@kw@minutes}} + }\hbox_unpack:N\c_empty_box } % \end{macrocode} % % \begin{environment}{mcb} % % \begin{macrocode} -\newenvironment{mcb}{\par +\stex_new_stylable_env:nnnnnnn{mcb}{O{}}{ + \stex_keys_set:nn{style}{#1} \stex_if_do_html:T{ - \begin{stex_annotate_env}{shtml:multiple-choice-block={}} + \tl_set:Nn\problem_mcc_box_tl{} + \exp_args:Nne \begin{stex_annotate_env}{ + shtml:multiple-choice-block={} + \clist_if_empty:NF \l_stex_key_style_clist {, + shtml:styles={\l_stex_key_style_clist} + } + } } \stex_deactivate_macro:Nn \mcb {sproblem~environments} + \stex_deactivate_macro:Nn \scb {sproblem~environments} \stex_deactivate_macro:Nn \solution {sproblem~environments} + \stex_deactivate_macro:Nn \hint {sproblem~environments} + \stex_deactivate_macro:Nn \exnote {sproblem~environments} + \stex_deactivate_macro:Nn \gnote {sproblem~environments} \stex_reactivate_macro:N \mcc - \begin{enumerate} + \cs_set:Nn \_@@_mccline:n{ + \begin{list}{}{ + \setlength\topsep{0pt} + \setlength\parsep{0pt} + \setlength\rightmargin{0pt} + }\item[\problem_mcc_box_tl] ##1 \end{list} + } + \stex_style_apply: }{ - \end{enumerate} + \stex_style_apply: \stex_if_do_html:T{ \end{stex_annotate_env} } -} +}{\par}{}{} +\stexstylemcb[inline]{ + \cs_set:Nn \_@@_mccline:n{\problem_mcc_box_tl{~} #1} +}{} + \stex_deactivate_macro:Nn \mcb {sproblem~environments} % \end{macrocode} % @@ -529,9 +715,7 @@ \tl_clear:N \l_stex_key_Ftext_tl }{ feedback .tl_set:N = \l_stex_key_feedback_tl , - T .default:n = { false } , - T .bool_set:N = \l_stex_key_T_bool , - F .default:n = { false } , + T .code:n = {\bool_set_true:N \l_stex_key_T_bool} , F .code:n = {\bool_set_false:N \l_stex_key_T_bool} , Ttext .tl_set:N = \l_stex_key_Ttext_tl , Ftext .tl_set:N = \l_stex_key_Ftext_tl , @@ -547,8 +731,8 @@ } } \newcommand\mcc[2][]{ - \stex_keys_set:nn{mcc}{#1}\par - \tl_set:Nn \l_tmpb_tl {~--~ + \stex_keys_set:nn{mcc}{#1} + \tl_set:Nn \l_tmpa_tl{ \bool_if:NTF \l_stex_key_T_bool { \tl_if_empty:NTF \l_stex_key_Ttext_tl \problem@kw@correct \l_stex_key_Ttext_tl }{ @@ -558,51 +742,217 @@ \\\emph{\l_stex_key_feedback_tl} } } - \tl_set:Nn \l_tmpa_tl { - #2 - \stex_if_do_html:TF{ - \stex_annotate:nn{shtml:mcc-solution={}}{\l_tmpb_tl} + + \_@@_mccline:n{ + \stex_if_do_html:TF{ + \stex_annotate:nn{shtml:mcc={ + \bool_if:NTF \l_stex_key_T_bool {true}{false} + }}{ + #2\stex_annotate:nn{shtml:mcc-solution={}}{\l_tmpa_tl} + } }{ - \ifsolutions\l_tmpb_tl\fi + #2\ifsolutions\footnote{\l_tmpa_tl}\fi } } - \item[\problem_mcc_box_tl]{}~ - \stex_if_do_html:TF{ - \stex_annotate:nn{shtml:mcc={ - \bool_if:NTF \l_stex_key_T_bool {true}{false} - }}{\l_tmpa_tl} - }{\l_tmpa_tl} } \stex_deactivate_macro:Nn \mcc {mcb~environments} % \end{macrocode} % \end{macro} +% \end{environment} +% +% \begin{environment}{scb} +% +% \begin{macrocode} + +\tl_set:Nn\problem_scc_box_tl{$\bigcirc$} + +\stex_new_stylable_env:nnnnnnn{scb}{O{}}{ + \stex_keys_set:nn{style}{#1} + \stex_if_do_html:T{ + \exp_args:Nne\begin{stex_annotate_env}{ + shtml:single-choice-block={} + \clist_if_empty:NF \l_stex_key_style_clist {, + shtml:styles={\l_stex_key_style_clist} + } + } + \tl_set:Nn\problem_scc_box_tl{} + } + \stex_deactivate_macro:Nn \mcb {sproblem~environments} + \stex_deactivate_macro:Nn \scb {sproblem~environments} + \stex_deactivate_macro:Nn \solution {sproblem~environments} + \stex_deactivate_macro:Nn \hint {sproblem~environments} + \stex_deactivate_macro:Nn \exnote {sproblem~environments} + \stex_deactivate_macro:Nn \gnote {sproblem~environments} + \stex_reactivate_macro:N \scc + \cs_set:Nn \_@@_sccline:n{ + \begin{list}{}{ + \setlength\topsep{0pt} + \setlength\parsep{0pt} + \setlength\rightmargin{0pt} + }\item[\problem_scc_box_tl] ##1 \end{list} + } + \stex_style_apply: +}{ + \stex_style_apply: + \stex_if_do_html:T{ + \end{stex_annotate_env} + } +}{\par}{}{} +\stexstylescb[inline]{ + \cs_set:Nn \_@@_sccline:n{\problem_scc_box_tl{~} #1} +}{} + +\stex_deactivate_macro:Nn \scb {sproblem~environments} +% \end{macrocode} +% +% \begin{macro}{\scc} +% \begin{macrocode} + +\newcommand\scc[2][]{ + \stex_keys_set:nn{mcc}{#1} + \tl_set:Nn \l_tmpa_tl{ + \bool_if:NTF \l_stex_key_T_bool { + \tl_if_empty:NTF \l_stex_key_Ttext_tl \problem@kw@correct \l_stex_key_Ttext_tl + }{ + \tl_if_empty:NTF \l_stex_key_Ftext_tl \problem@kw@wrong \l_stex_key_Ftext_tl + } + \tl_if_empty:NF \l_stex_key_feedback_tl { + \\\emph{\l_stex_key_feedback_tl} + } + } + + \_@@_sccline:n{ + \stex_if_do_html:TF{ + \stex_annotate:nn{shtml:scc={ + \bool_if:NTF \l_stex_key_T_bool {true}{false} + }}{ + #2\stex_annotate:nn{shtml:scc-solution={}}{\l_tmpa_tl} + } + }{ + #2\ifsolutions\footnote{\l_tmpa_tl}\fi + } + } +} +\stex_deactivate_macro:Nn \scc {scb~environments} + + +\newcommand\yesTnoF{ + \begin{scb}[style=inline] + \scc[T]{yes}~\scc[F]{no} + \end{scb} +} +\newcommand\yesFnoT{ + \begin{scb}[style=inline] + \scc[F]{yes}~\scc[T]{no} + \end{scb} +} +\newcommand\trueTfalseF{ + \begin{scb}[style=inline] + \scc[T]{true}~\scc[F]{false} + \end{scb} +} +\newcommand\trueFfalseT{ + \begin{scb}[style=inline] + \scc[F]{true}~\scc[T]{false} + \end{scb} +} +% \end{macrocode} +% \end{macro} +% \end{environment} % % \begin{macro}{\fillinsol} % \begin{macrocode} +\stex_keys_define:nnnn{fillinsol}{ + \tl_clear:N \l_@@_fillin_solution_tl + \dim_zero:N \l_stex_key_testspace_dim +}{ + testspace .dim_set:N = \l_stex_key_testspace_dim, + exact .code:n = {\_@@_parse_fillin_arg:nnnn{exact}#1 }, + numrange .code:n = {\_@@_parse_fillin_arg:nnnn{numrange}#1 }, + regex .code:n = {\_@@_parse_fillin_arg:nnnn{regex}#1 } +}{} + +\cs_new:Nn \_@@_parse_fillin_arg:nnnn { + \stex_if_do_html:TF{ + \tl_set:Nn \l_tmpa_tl{#3} + \tl_set:Nn \l_tmpb_tl{T} + \stex_annotate_invisible:nn{ + shtml:fillin-case={#1}, + shtml:fillin-case-value={#2}, + shtml:fillin-case-verdict={ + \tl_if_eq:NNTF\l_tmpa_tl\l_tmpb_tl{true}{false} + }, + }{#4} + }{ + \tl_put_right:Nn \l_@@_fillin_solution_tl { + #1{~} & #2{~} & #3{~} & #4{~} \\ + } + } +} + \newcommand\fillinsol[2][]{ \quad + \mode_if_math:TF{ + \hbox{\_@@_fillinsol:nn{#1}{$#2$}} + }{ + \_@@_fillinsol:nn{#1}{#2} + } + \quad +} +\cs_new_protected:Nn \_@@_fillinsol:nn { + \stex_keys_set:nn{fillinsol}{#1} \stex_if_do_html:TF{ - \stex_annotate:nn{shtml:fillinsol={}}{ \_stex_annotate_force_break:n{#2} } + \stex_annotate:nn{shtml:fillinsol={}}{ \_stex_annotate_force_break:n{ + #2 + \l_@@_fillin_solution_tl + } } }{ \ifsolutions \textcolor{red}{\fbox{#2}} - \else - \fbox{ - \tl_if_empty:nTF{#1}{ - \phantom{\huge{#2}} - }{ - \hspace{#1} + \tl_if_empty:NF \l_@@_fillin_solution_tl { + \footnote{ + \halign{ ##\hfil & ##\hfil &##\hfil&##\hfil \cr + \textbf{type }&\textbf{case }&\textbf{verdict }&\textbf{feedback }\cr + \l_@@_fillin_solution_tl + } } } + \else + \fbox{\dim_compare:nNnTF\l_stex_key_testspace_dim={0pt}{ + \phantom{\huge{#2}} + }{ + \hspace{\l_stex_key_testspace_dim} + }} \fi } - \quad } \stex_deactivate_macro:Nn \fillinsol {sproblem~environments} % \end{macrocode} % \end{macro} % -% \end{environment} +% +% \begin{macro}{\testemptypage} +% \begin{macrocode} +\newcommand\testemptypage[1][]{% + \bool_if:NT \c_@@_test_bool {\ \vfill\begin{center}\hwexam@kw@testemptypage\end{center}\eject} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\testspace} +% \begin{macrocode} +\newcommand\testspace[1]{\bool_if:NT \c_@@_test_bool {\vspace*{#1}}} +\newcommand\testsmallspace{\testspace{1cm}} +\newcommand\testmedspace{\testspace{2cm}} +\newcommand\testbigspace{\testspace{3cm}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\testnewpage} +% \begin{macrocode} +\newcommand\testnewpage{\bool_if:NT \c_@@_test_bool {\newpage}} +% \end{macrocode} +% \end{macro} % % % \begin{macrocode} diff --git a/macros/latex/contrib/stex/source/stex.dtx b/macros/latex/contrib/stex/source/stex.dtx index dcbc4dfe7a..b128f38dd1 100644 --- a/macros/latex/contrib/stex/source/stex.dtx +++ b/macros/latex/contrib/stex/source/stex.dtx @@ -36,7 +36,10 @@ %%%%%%%%%%%%% stex.dtx %%%%%%%%%%%%% \RequirePackage{expl3,l3keys2e} -\ProvidesExplClass{stex}{2023/03/19}{3.3.0}{sTeX document class} +\ProvidesExplClass{stex}{2023/10/13}{3.4.0}{sTeX document class} +\IfFileExists{stex-expl-compat.sty}{ + \usepackage{stex-expl-compat} +}{} \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{stex}} \ProcessOptions @@ -52,11 +55,14 @@ % \begin{macrocode} %<*package> \RequirePackage{expl3,l3keys2e,ltxcmds} -\ProvidesExplPackage{stex}{2023/03/19}{3.3.0}{sTeX package} +\ProvidesExplPackage{stex}{2023/10/13}{3.4.0}{sTeX package} +\IfFileExists{stex-expl-compat.sty}{ + \usepackage{stex-expl-compat} +}{} \RequirePackage{stex-logo} % externalized for backwards-compatibility reasons \RequirePackage{standalone} -\message{^^J*~This~is~sTeX~version~3.3.0~*^^J} +\message{^^J*~This~is~sTeX~version~3.4.0~*^^J} % \end{macrocode} % % Package options: @@ -70,6 +76,7 @@ writesms .bool_set:N = \c_stex_persist_write_mode_bool , checkterms .bool_set:N = \c_stex_check_terms_bool , image .bool_set:N = \c_tikzinput_image_bool, + nofrontmatter .bool_set:N = \c_stex_no_frontmatter_bool, unknown .code:n = {} } \exp_args:NNo \clist_set:Nn \c_stex_debug_clist \c_stex_debug_clist @@ -185,11 +192,11 @@ } \exp_args:NNo \clist_if_in:NnTF \c_stex_debug_clist {\tl_to_str:n{all}} { - \msg_redirect_module:nnn{ stex }{ none }{ term } + \msg_redirect_module:nnn{ stex }{ none }{ warning } \stex_debug:nn{all}{Logging~everything!} }{ \clist_map_inline:Nn \c_stex_debug_clist { - \msg_redirect_name:nnn{ stex }{ debug / #1 }{ term } + \msg_redirect_name:nnn{ stex }{ debug / #1 }{ warning } \stex_debug:nn{#1}{Logging~#1} } } @@ -547,8 +554,8 @@ % \begin{macrocode} \cs_new_protected:Nn \stex_deactivate_macro:Nn { \tl_set_eq:cN{\tl_to_str:n{#1}~-~orig}#1 - \tl_set:Nn#1{ - \msg_error:nnnn{stex}{error/deactivated-macro}{\detokenize{#1}}{#2} + \cs_set_protected:Npn#1{ + \exp_args:Nnno\msg_error:nnnn{stex}{error/deactivated-macro}{#1}{#2} } } \cs_new_protected:Nn \stex_reactivate_macro:N { @@ -1915,46 +1922,48 @@ } \AtBeginDocument{ - \cs_if_exist:NTF\frontmatter{ - \let\_@@_orig_frontmatter\frontmatter - \let\frontmatter\relax - }{ - \tl_set:Nn\_@@_orig_frontmatter{ - \clearpage - %\@mainmatterfalse - \pagenumbering{roman} + \bool_if:NF \c_stex_no_frontmatter_bool { + \cs_if_exist:NTF\frontmatter{ + \let\_@@_orig_frontmatter\frontmatter + \let\frontmatter\relax + }{ + \tl_set:Nn\_@@_orig_frontmatter{ + \clearpage + %\@mainmatterfalse + \pagenumbering{roman} + } } - } - \cs_if_exist:NTF\backmatter{ - \let\_@@_orig_backmatter\backmatter - \let\backmatter\relax - }{ - \tl_set:Nn\_@@_orig_backmatter{ - \clearpage - %\@mainmatterfalse - \pagenumbering{roman} + \cs_if_exist:NTF\backmatter{ + \let\_@@_orig_backmatter\backmatter + \let\backmatter\relax + }{ + \tl_set:Nn\_@@_orig_backmatter{ + \clearpage + %\@mainmatterfalse + \pagenumbering{roman} + } } - } - \newenvironment{frontmatter}{ - \_@@_orig_frontmatter - }{ - \cs_if_exist:NTF\mainmatter{ - \mainmatter + \newenvironment{frontmatter}{ + \_@@_orig_frontmatter }{ - \clearpage - %\@mainmattertrue - \pagenumbering{arabic} + \cs_if_exist:NTF\mainmatter{ + \mainmatter + }{ + \clearpage + %\@mainmattertrue + \pagenumbering{arabic} + } } - } - \newenvironment{backmatter}{ - \_@@_orig_backmatter - }{ - \cs_if_exist:NTF\mainmatter{ - \mainmatter + \newenvironment{backmatter}{ + \_@@_orig_backmatter }{ - \clearpage - %\@mainmattertrue - \pagenumbering{arabic} + \cs_if_exist:NTF\mainmatter{ + \mainmatter + }{ + \clearpage + %\@mainmattertrue + \pagenumbering{arabic} + } } } } @@ -2320,7 +2329,10 @@ } \cs_new_protected:Nn \stex_ref_new_sym_target:n { - \exp_args:Ne \label{\tl_to_str:n{sref@sym@ #1}} + \cs_if_exist:NT \hypertarget{ + \exp_args:Ne \hypertarget{\tl_to_str:n{sref@sym@ #1}}{} + \str_gset:cx{\tl_to_str:n{r@sref@sym@ #1}}{\tl_to_str:n{sref@sym@ #1}} + } } \cs_new_protected:Nn \stex_ref_new_sym_target:nn { @@ -2342,8 +2354,8 @@ } \cs_new_protected:Npn \_@@_do_internal_link:nn #1 { - \cs_if_exist:NTF \hyperref { - \hyperref[{#1}] + \cs_if_exist:NTF \hyperlink { + \hyperlink{#1} }\use:n } @@ -2352,7 +2364,7 @@ } \cs_new_protected:Npn \_@@_sym_aux:nn #1 { - \cs_if_exist:cTF{r@sref@sym@\tl_to_str:n{#1}}{ + \cs_if_exist:cTF{\tl_to_str:n{r@sref@sym@#1}}{ \exp_args:Ne \_@@_do_internal_link:nn{\tl_to_str:n{sref@sym@#1}} }{ \str_if_exist:cTF{g_stex_sref_sym_#1_label}{ @@ -2448,9 +2460,9 @@ } }{ \IfFileExists{ \stex_file_use:N \c_stex_mathhub_file / #1 / source / #2 }{ - \par\stex_annotate_invisible:nn{shtml:inputref={ + \ifvmode\noindent\fi\stex_annotate_invisible:nn{shtml:inputref={ \l_tmpa_str / #2 - }}{~} + }}{} }{ \input{ \stex_file_use:N \c_stex_mathhub_file / #1 / source / #2 } } @@ -2536,7 +2548,9 @@ \bool_while_do:nn { ! \seq_if_empty_p:N \l_@@_id_seq }{ \str_set:Nx \l_@@_path_str {\stex_file_use:N \l_@@_path_seq / meta-inf / lib / #1.#2} \IfFileExists{ \l_@@_path_str }{ - \seq_put_right:No \l_@@_libinput_files_seq \l_@@_path_str + \exp_args:NNo \seq_if_in:NnF \l_@@_libinput_files_seq \l_@@_path_str { + \seq_put_right:No \l_@@_libinput_files_seq \l_@@_path_str + } }{} \seq_pop_left:NN \l_@@_id_seq \l_@@_path_str \seq_put_right:No \l_@@_path_seq \l_@@_path_str @@ -2544,7 +2558,9 @@ \str_set:Nx \l_@@_path_str {\stex_file_use:N \l_@@_path_seq / lib / #1.#2} \IfFileExists{ \l_@@_path_str }{ - \seq_put_right:No \l_@@_libinput_files_seq \l_@@_path_str + \exp_args:NNo \seq_if_in:NnF \l_@@_libinput_files_seq \l_@@_path_str { + \seq_put_right:No \l_@@_libinput_files_seq \l_@@_path_str + } }{} } @@ -2637,7 +2653,7 @@ % % \begin{macro}{\libusetikzlibrary} % \begin{macrocode} -\cs_new_protected:Nn \_@@_usetikzlibrary:nn { +\cs_new_protected:Nn \_@@_usetikzlibrary_i:nn { \pgfkeys@spdef\pgf@temp{#1} \expandafter\ifx\csname tikz@library@\pgf@temp @loaded\endcsname\relax% \expandafter\global\expandafter\let\csname tikz@library@\pgf@temp @loaded\endcsname=\pgfutil@empty% @@ -2653,17 +2669,25 @@ \catcode`\$=\csname tikz@library@#1@dollarcode\endcsname } -\cs_new_protected:Npn \libusetikzlibrary #1 { - \cs_if_exist:NF \usetikzlibrary { - \msg_error:nnx{stex}{error/notikz}{\tl_to_str:n{\libusetikzlibrary}} - } +\cs_new_protected:Nn \_@@_usetikzlibrary:n{ \_@@_up_archive:nn{tikzlibrary#1}{code.tex} \int_compare:nNnTF {\seq_count:N \l_@@_libinput_files_seq} = 1 { - \exp_args:Nne \_@@_usetikzlibrary:nn{#1}{ \seq_item:Nn \l_@@_libinput_files_seq 1 } + \exp_args:Nne \_@@_usetikzlibrary_i:nn{#1}{ \seq_item:Nn \l_@@_libinput_files_seq 1 } }{ \stex_fatal_error:nnn{error/nofile}{\libusetikzlibrary}{tikzlibrary#1.code.tex} } } + +\newcommand \libusetikzlibrary [2][] { + \cs_if_exist:NF \usetikzlibrary { + \msg_error:nnx{stex}{error/notikz}{\tl_to_str:n{\libusetikzlibrary}} + } + \tl_if_empty:nTF{#1}{ + \_@@_usetikzlibrary:n{#2} + }{ + \stex_in_archive:nn{#1}{\_@@_usetikzlibrary:n{#2}} + } +} % \end{macrocode} % \end{macro} % @@ -4370,11 +4394,14 @@ \str_clear:N \l_@@_name_str \str_clear:N \l_@@_newname_str \tl_clear:N \l_@@_ass_tl + \stex_debug:nn{morphisms}{Parsing~#1} \exp_args:NNe \seq_set_split:Nnn \l_@@_seq {\tl_to_str:n{@}} {#1} \int_compare:nNnTF {\seq_count:N \l_@@_seq} = 1 { + \stex_debug:nn{morphisms}{No~@} \seq_pop_left:NN \l_@@_seq \l_@@_next_tl }{ \seq_pop_left:NN \l_@@_seq \l_@@_name_str + \stex_debug:nn{morphisms}{Name:~\l_@@_name_str} \exp_args:NNo \str_set:Nn \l_@@_name_str \l_@@_name_str \tl_set:Nx \l_@@_next_tl {\seq_use:Nn \l_@@_seq @} } @@ -4449,7 +4476,7 @@ }{} \stex_deactivate_macro:Nn \interpretmod {module~environments} \stex_every_module:n { - \stex_reactivate_macro:N \iterpretmod + \stex_reactivate_macro:N \interpretmod } \stex_sms_allow_escape:N\interpretmod @@ -4553,12 +4580,14 @@ \tl_clear:N \l_stex_key_type_tl \tl_clear:N \l_stex_key_def_tl \tl_clear:N \l_stex_key_return_tl + \str_clear:N \l_stex_key_wikidata_str \clist_clear:N \l_stex_key_argtypes_clist }{ name .str_set:N = \l_stex_key_name_str , return .tl_set:N = \l_stex_key_return_tl , argtypes .clist_set:N = \l_stex_key_argtypes_clist , + wikidata .str_set:N = \l_stex_key_wikidata_str , type .tl_set:N = \l_stex_key_type_tl , def .tl_set:N = \l_stex_key_def_tl , @@ -4640,6 +4669,9 @@ \str_if_empty:NF \l_stex_macroname_str {, shtml:macroname={\l_stex_macroname_str} } + \str_if_empty:NF \l_stex_key_wikidata_str {, + shtml:wikidata={\l_stex_key_wikidata_str} + } \str_if_empty:NF \l_stex_key_assoc_str {, shtml:assoctype={\l_stex_key_assoc_str} } @@ -5036,7 +5068,11 @@ intent .str_set:N = \l_stex_key_intent_str , argnames .clist_set:N = \l_stex_key_intent_args_clist , unknown .code:n = { - \str_set_eq:NN \l_stex_key_variant_str \l_keys_key_str + \str_if_empty:NTF \l_keys_key_str { + \str_set:Nx \l_stex_key_variant_str {\l_keys_key_tl} + }{ + \str_set_eq:NN \l_stex_key_variant_str \l_keys_key_str + } } }{style} % \end{macrocode} @@ -5368,10 +5404,21 @@ } \cs_new_protected:Nn \_stex_notation_set_default:n{ - \stex_module_add_notation:eoeoo{#1}{} - {\int_use:N \l_stex_get_symbol_arity_int} - \l_stex_notation_macrocode_cs - \l_stex_key_op_tl + \stex_if_in_module:TF{ + \stex_module_add_notation:eoeoo{#1}{} + {\int_use:N \l_stex_get_symbol_arity_int} + \l_stex_notation_macrocode_cs + \l_stex_key_op_tl + }{ + \cs_set_eq:cN {l_stex_notation_ + \l_stex_get_symbol_mod_str?\l_stex_get_symbol_name_str + __cs}\l_stex_notation_macrocode_cs + \tl_if_empty:NF \l_stex_key_op_tl { + \cs_set_eq:cN{l_stex_notation_ + \l_stex_get_symbol_mod_str?\l_stex_get_symbol_name_str + _op__cs}\l_stex_key_op_tl + } + } } % \end{macrocode} % \end{macro} @@ -7278,7 +7325,11 @@ }{ this .tl_set:N = \l_stex_current_this_tl , unknown .code:n = { - \str_set_eq:NN \l_@@_name_str \l_keys_key_str + \str_if_empty:NTF \l_keys_key_str { + \str_set:Nx \l_@@_name_str {\l_keys_key_tl} + }{ + \str_set_eq:NN \l_@@_name_str \l_keys_key_str + } } }{} @@ -8304,7 +8355,7 @@ \NewDocumentCommand \premise {O{} m} { \tl_if_empty:nF {#1} { \stex_debug:nn{Here:}{Variable~#1} - \exp_args:NNx\exp_args:Nnx\vardef{v#1}{#1} + \exp_args:Nne\use:nn{\vardef}{{v#1}[name=#1]{#1}} } \stex_annotate:nn{shtml:premise={#1}}{#2} } @@ -8684,7 +8735,7 @@ \stex_keys_set:nn{spfsteps}{##2} \str_if_empty:NF \l_stex_key_name_str { \stex_debug:nn{Here:}{Variable~\l_stex_key_name_str} - \exp_args:NNx\exp_args:Nnx\vardef{v\l_stex_key_name_str}{\l_stex_key_name_str} + \exp_args:Nne\use:nn{\vardef}{{v\l_stex_key_name_str}[name=\l_stex_key_name_str]{\l_stex_key_name_str}} } \begin{spfstepenv} @@ -8983,6 +9034,51 @@ % \end{macrocode} % \end{macro} % +% VoLL-KI Annotations +% \begin{macrocode} +\newcommand\precondition[2]{ + \str_clear:N \l_stex_get_symbol_name_str + \stex_get_symbol:n{#2} + \str_if_empty:NTF \l_stex_get_symbol_name_str{ + \errmessage{Unknown~symbol~#2} + }{ + \str_case:nnTF {#1}{ + {remember}{} + {understand}{} + {analyze}{} + {evaluate}{} + {apply}{} + {create}{} + }{ + \stex_annotate_invisible:nn{ + shtml:preconditionsymbol={\l_stex_get_symbol_mod_str ? \l_stex_get_symbol_name_str}, + shtml:preconditiondimension={#1} + }{} + }{\errmessage{Unknown~cognitive~dimension~#1}} + } +} +\newcommand\objective[2]{ + \str_clear:N \l_stex_get_symbol_name_str + \stex_get_symbol:n{#2} + \str_if_empty:NTF \l_stex_get_symbol_name_str{ + \errmessage{Unknown~symbol~#2} + }{ + \str_case:nnTF {#1}{ + {remember}{} + {understand}{} + {analyze}{} + {evaluate}{} + {apply}{} + {create}{} + }{ + \stex_annotate_invisible:nn{ + shtml:objectivesymbol={\l_stex_get_symbol_mod_str ? \l_stex_get_symbol_name_str}, + shtml:objectivedimension={#1} + }{} + }{\errmessage{Unknown~cognitive~dimension~#1}} + } +} +% \end{macrocode} % % \begin{macrocode} \seq_if_empty:NT \g_stex_current_file { diff --git a/macros/latex/contrib/stex/source/tikzinput.dtx b/macros/latex/contrib/stex/source/tikzinput.dtx index 988d483b12..da4615fbbe 100644 --- a/macros/latex/contrib/stex/source/tikzinput.dtx +++ b/macros/latex/contrib/stex/source/tikzinput.dtx @@ -42,7 +42,7 @@ % \end{macrocode} % % \begin{macrocode} -\ProvidesExplPackage{tikzinput}{2023/03/19}{3.3.0}{tikzinput package} +\ProvidesExplPackage{tikzinput}{2023/10/13}{3.4.0}{tikzinput package} \RequirePackage{l3keys2e} \keys_define:nn { tikzinput } { diff --git a/macros/latex/contrib/stex/tex/etc/hwexam-default.header b/macros/latex/contrib/stex/tex/etc/hwexam-default.header index d36a97c718..fa70218e14 100644 --- a/macros/latex/contrib/stex/tex/etc/hwexam-default.header +++ b/macros/latex/contrib/stex/tex/etc/hwexam-default.header @@ -3,7 +3,7 @@ Matriculation Number:\hspace*{2cm}\strut\\[1ex] \begin{center} \Large\textbf{\@title}\\[1ex] - \large\@date\\[3ex] + \large\@date\strut\\[3ex] \end{center} \textbf{You have {\hwexamminutes} (sharp) for the test};\\ @@ -22,11 +22,9 @@ You will only need {\hwexam@reqpts} points for a perfect score, i.e. \vfill \begin{center} { - \Large\em You have ample time, so take it slow and avoid rushing - to mistakes!\\[2ex] Different problems test different skills and knowledge, so do not get stuck on one problem. }\vfill \correction@table\\[3ex] -\end{center}
\ No newline at end of file +\end{center} diff --git a/macros/latex/contrib/stex/tex/etc/lststex.sty b/macros/latex/contrib/stex/tex/etc/lststex.sty index 423e0b4a20..7d127fddc5 100644 --- a/macros/latex/contrib/stex/tex/etc/lststex.sty +++ b/macros/latex/contrib/stex/tex/etc/lststex.sty @@ -15,6 +15,7 @@ symdef,symdecl,notation,sref}, morekeywords={smodule,sdefinition,sassertion,sparagraph, inputref, + sproblem,hint,exnote,solution,gnote, sproof,spfstep,spfcases,spfcase,justification,premise}} \definecolor{backcolor}{gray}{.96} @@ -71,8 +72,10 @@ classoffset=5,keywordstyle=\color{magenta},morekeywords={ smodule,sdefinition,sassertion,sparagraph,sexample, sproof,subproof,spfcases,spfcase,spfstep,spfcomment,spfblock, + sproblem,subproblem,solution,hint,exnote,mcb,scb, \\spfidea,\\spfsketch,\\spfcasesketch,\\sproofend, \\spfjust,\\premise,\\justarg,\\inlinedef,\\inlineex,\\inlineass, + \\scc,\\mcc,\\objective, \\varbind, copymodule,interpretmodule,mathstructure,sexample,extstructure, extstructure*,realization @@ -125,11 +128,21 @@ } }, unknown .code:n = { - \tl_if_empty:nTF{#1}{ - \exp_args:NNo \clist_put_right:Nn \l_lststex_pass_on_args_clist \l_keys_key_str + \str_if_empty:NTF \l_keys_key_str { + \tl_if_empty:nTF{#1}{ + \exp_args:NNo \clist_put_right:Nn \l_lststex_pass_on_args_clist \l_keys_key_tl + }{ + \exp_args:NNx \clist_put_right:Nn \l_lststex_pass_on_args_clist { + \l_keys_key_tl = \exp_not:n{{#1}} + } + } }{ - \exp_args:NNx \clist_put_right:Nn \l_lststex_pass_on_args_clist { - \l_keys_key_str = \exp_not:n{{#1}} + \tl_if_empty:nTF{#1}{ + \exp_args:NNo \clist_put_right:Nn \l_lststex_pass_on_args_clist \l_keys_key_str + }{ + \exp_args:NNx \clist_put_right:Nn \l_lststex_pass_on_args_clist { + \l_keys_key_str = \exp_not:n{{#1}} + } } } } diff --git a/macros/latex/contrib/stex/tex/etc/stex-highlighting.sty b/macros/latex/contrib/stex/tex/etc/stex-highlighting.sty index 0cd04872a1..ec0058d519 100644 --- a/macros/latex/contrib/stex/tex/etc/stex-highlighting.sty +++ b/macros/latex/contrib/stex/tex/etc/stex-highlighting.sty @@ -1,5 +1,16 @@ %\RequirePackage{xcolor} \RequirePackage{pdfcomment} +\RequirePackage{l3keys2e} +\ExplSyntaxOn + +\keys_define:nn { stexhighlighting / pkg}{ + boxes .default:n = {true}, + boxes .bool_set:N = \c_stexhighlighting_boxes_bool, +} + +\ProcessKeysOptions{ stexhighlighting / pkg} + +\ExplSyntaxOff \def\compemph#1{% \ifcsname textcolor\endcsname @@ -28,20 +39,40 @@ } \def\varemph#1{\ifcsname textcolor\endcsname\textcolor{gray}{#1}\else#1\fi} -\protected\def\compemph@uri#1#2{% - \pdftooltip{% - \srefsymuri{#2}{\compemph{#1}}% - }{% - URI:~\detokenize{#2}% - }% +\ExplSyntaxOn + +\bool_if:NTF\c_stexhighlighting_boxes_bool{ + \protected\def\compemph@uri#1#2{ + \pdftooltip{ + \srefsymuri{#2}{\compemph{#1}} + }{ + URI:~\detokenize{#2} + } + } + \protected\def\symrefemph@uri#1#2{ + \pdftooltip{ + \srefsymuri{#2}{\symrefemph{#1}} + }{ + URI:~\detokenize{#2} + } + } +}{ + \protected\def\compemph@uri#1#2{ + \pdftooltip{{\hypersetup{pdfborder={0~0~0}} + \srefsymuri{#2}{\compemph{#1}} + }}{ + URI:~\detokenize{#2} + } + } + \protected\def\symrefemph@uri#1#2{ + \pdftooltip{{\hypersetup{pdfborder={0~0~0}} + \srefsymuri{#2}{\symrefemph{#1}} + }}{ + URI:~\detokenize{#2} + } + } } -\protected\def\symrefemph@uri#1#2{% - \pdftooltip{% - \srefsymuri{#2}{\symrefemph{#1}}% - }{% - URI:~\detokenize{#2}% - }% - } + \protected\def\defemph@uri#1#2{% \pdftooltip{% \defemph{#1}% @@ -56,3 +87,5 @@ Variable~\detokenize{#2}% }% } + +\ExplSyntaxOff
\ No newline at end of file diff --git a/macros/latex/contrib/stex/tex/etc/stex-logo.sty b/macros/latex/contrib/stex/tex/etc/stex-logo.sty index 1bcb487aba..cc4c6154ac 100644 --- a/macros/latex/contrib/stex/tex/etc/stex-logo.sty +++ b/macros/latex/contrib/stex/tex/etc/stex-logo.sty @@ -1,7 +1,7 @@ \RequirePackage{xspace} \protected\def\stex{% \@ifundefined{texorpdfstring}{\raisebox{-.5ex}S\kern-.5ex\TeX}{% - \texorpdfstring{\raisebox{-.5ex}S\kern-.5ex\TeX}{sTeX}\xspace% - }% + \texorpdfstring{\raisebox{-.5ex}S\kern-.5ex\TeX}{sTeX}% + }\xspace% } -\let\sTeX\stex
\ No newline at end of file +\let\sTeX\stex diff --git a/macros/latex/contrib/stex/tex/etc/stex.cls.ltxml b/macros/latex/contrib/stex/tex/etc/stex.cls.ltxml deleted file mode 100644 index 6915d0db92..0000000000 --- a/macros/latex/contrib/stex/tex/etc/stex.cls.ltxml +++ /dev/null @@ -1,10 +0,0 @@ -package LaTeXML::Package::Pool; -use strict; -use warnings; -use LaTeXML::Package; - -RequirePackage('xparse'); - -InputDefinitions('stex', type => 'cls', noltxml => 1); - -1;
\ No newline at end of file diff --git a/macros/latex/contrib/stex/tex/etc/stex.sty.ltxml b/macros/latex/contrib/stex/tex/etc/stex.sty.ltxml deleted file mode 100644 index 44e30b44c5..0000000000 --- a/macros/latex/contrib/stex/tex/etc/stex.sty.ltxml +++ /dev/null @@ -1,23 +0,0 @@ -package LaTeXML::Package::Pool; -use strict; -use warnings; -use LaTeXML::Package; - -RequirePackage('xparse'); - -DefPrimitive('\csname stex_kpsewhich:Nn\endcsname Token {}',sub { - my ($stomach, $target, $value) = @_; - $value = ToString(Expand($value)); - my $out = ToString(`kpsewhich $value`); - $out =~ s/^\s+//; - $out =~ s/\s+$//; - Note("Here: $value => $out"); - my @ret = Explode($out); - DefMacroI($target, undef, Tokens(@ret)); -},locked=>1); - -\DefMacroI('\stex@backend',undef,Explode("latexml")); - -InputDefinitions('stex', type => 'sty', noltxml => 1); - -1;
\ No newline at end of file diff --git a/macros/latex/contrib/stex/tex/etc/stexthm.sty b/macros/latex/contrib/stex/tex/etc/stexthm.sty index 4b89af5b39..7c37c2678a 100644 --- a/macros/latex/contrib/stex/tex/etc/stexthm.sty +++ b/macros/latex/contrib/stex/tex/etc/stexthm.sty @@ -1,4 +1,4 @@ -\ProvidesExplPackage{stexthm}{2023/03/19}{3.3.0}{Default Typesetting for sTeX Statements} +\ProvidesExplPackage{stexthm}{2023/10/13}{3.4.0}{Default Typesetting for sTeX Statements} \RequirePackage{stex} \RequirePackage{amsthm} diff --git a/macros/latex/contrib/stex/tex/ldf/problem-english.ldf b/macros/latex/contrib/stex/tex/ldf/problem-english.ldf index bd202814e6..137b9cbe9e 100644 --- a/macros/latex/contrib/stex/tex/ldf/problem-english.ldf +++ b/macros/latex/contrib/stex/tex/ldf/problem-english.ldf @@ -3,7 +3,9 @@ \tl_set:Nn \problem@kw@hint{Hint} \tl_set:Nn \problem@kw@note{Note} \tl_set:Nn \problem@kw@grading{Grading} -\tl_set:Nn \problem@kw@points{pt} +\tl_set:Nn \problem@kw@pts{pt} \tl_set:Nn \problem@kw@minutes{min} \tl_set:Nn \problem@kw@correct{Correct} -\tl_set:Nn \problem@kw@wrong{Wrong}
\ No newline at end of file +\tl_set:Nn \problem@kw@wrong{Wrong} +\tl_set:Nn \problem@kw@feedback{Feedback} +\tl_set:Nn \problem@kw@points{Points} diff --git a/macros/latex/contrib/stex/tex/ldf/problem-finnish.ldf b/macros/latex/contrib/stex/tex/ldf/problem-finnish.ldf index 11fc490c4a..63718739b0 100644 --- a/macros/latex/contrib/stex/tex/ldf/problem-finnish.ldf +++ b/macros/latex/contrib/stex/tex/ldf/problem-finnish.ldf @@ -12,7 +12,9 @@ \tl_set:Nn \problem@kw@hint{Hint} \tl_set:Nn \problem@kw@note{Note} \tl_set:Nn \problem@kw@grading{Grading} -\tl_set:Nn \problem@kw@points{pt} +\tl_set:Nn \problem@kw@pts{pt} \tl_set:Nn \problem@kw@minutes{min} \tl_set:Nn \problem@kw@correct{Correct} \tl_set:Nn \problem@kw@wrong{Wrong} +\tl_set:Nn \problem@kw@schema{Schema} +\tl_set:Nn \problem@kw@points{Points} diff --git a/macros/latex/contrib/stex/tex/ldf/problem-french.ldf b/macros/latex/contrib/stex/tex/ldf/problem-french.ldf index bdcae874b2..53004d1f39 100644 --- a/macros/latex/contrib/stex/tex/ldf/problem-french.ldf +++ b/macros/latex/contrib/stex/tex/ldf/problem-french.ldf @@ -12,7 +12,9 @@ \tl_set:Nn \problem@kw@hint{Hint} \tl_set:Nn \problem@kw@note{Note} \tl_set:Nn \problem@kw@grading{Grading} -\tl_set:Nn \problem@kw@points{pt} +\tl_set:Nn \problem@kw@pts{pt} \tl_set:Nn \problem@kw@minutes{min} \tl_set:Nn \problem@kw@correct{Correct} \tl_set:Nn \problem@kw@wrong{Wrong} +\tl_set:Nn \problem@kw@schema{Schema} +\tl_set:Nn \problem@kw@points{Points} diff --git a/macros/latex/contrib/stex/tex/ldf/problem-ngerman.ldf b/macros/latex/contrib/stex/tex/ldf/problem-ngerman.ldf index 0747555783..beea10724a 100644 --- a/macros/latex/contrib/stex/tex/ldf/problem-ngerman.ldf +++ b/macros/latex/contrib/stex/tex/ldf/problem-ngerman.ldf @@ -11,8 +11,9 @@ \tl_set:Nn \problem@kw@hint{Hinweis} \tl_set:Nn \problem@kw@note{Bemerkung} \tl_set:Nn \problem@kw@grading{Bewertung} -\tl_set:Nn \problem@kw@points{Pkt} +\tl_set:Nn \problem@kw@pts{Pkt} \tl_set:Nn \problem@kw@minutes{Min} \tl_set:Nn \problem@kw@correct{Korrekt} \tl_set:Nn \problem@kw@wrong{Falsch} - +\tl_set:Nn \problem@kw@feedback{Rückmeldung} +\tl_set:Nn \problem@kw@points{Punkte} diff --git a/macros/latex/contrib/stex/tex/ldf/problem-russian.ldf b/macros/latex/contrib/stex/tex/ldf/problem-russian.ldf index f0a08c7761..7aa362391c 100644 --- a/macros/latex/contrib/stex/tex/ldf/problem-russian.ldf +++ b/macros/latex/contrib/stex/tex/ldf/problem-russian.ldf @@ -11,7 +11,9 @@ \tl_set:Nn \problem@kw@hint{Подсказка} \tl_set:Nn \problem@kw@note{Примечание} \tl_set:Nn \problem@kw@grading{Grading} -\tl_set:Nn \problem@kw@points{бл} +\tl_set:Nn \problem@kw@pts{бл} \tl_set:Nn \problem@kw@minutes{мин} \tl_set:Nn \problem@kw@correct{Correct} -\tl_set:Nn \problem@kw@wrong{Wrong}
\ No newline at end of file +\tl_set:Nn \problem@kw@wrong{Wrong} +\tl_set:Nn \problem@kw@schema{Schema} +\tl_set:Nn \problem@kw@points{Points} diff --git a/macros/latex/contrib/stex/tex/ldf/stex-en.ldf b/macros/latex/contrib/stex/tex/ldf/stex-en.ldf index 1501a92c82..04a11c6208 100644 --- a/macros/latex/contrib/stex/tex/ldf/stex-en.ldf +++ b/macros/latex/contrib/stex/tex/ldf/stex-en.ldf @@ -3,7 +3,7 @@ } \msg_set:nnn{stex}{warning/nomathhub}{ MATHHUB~system~variable~not~found~and~no~ - \tl_to_str:n{\mathhub}-value~set! + \tl_to_str:n{\mathhub}-value~set!^^JUsing~HOME/MathHub. } \msg_set:nnn{stex}{error/deactivated-macro}{ The~\tl_to_str:n{#1}~command~is~only~allowed~in~#2! @@ -129,6 +129,9 @@ \msg_set:nnn{stex}{error/nomorphism}{ No~morphism~#1~found~in~domain~of~morphism } +\msg_set:nnn{stex}{error/nestedproblem}{ + Nested~problem;~sproblem~not~allowed~in~another~sproblem +} \str_set:Nn \spfsketchenvautorefname {Proof~sketch} \str_set:Nn \sproofautorefname {Proof} \str_set:Nn \spfstepautorefname {Proof~step}
\ No newline at end of file |