diff options
author | Karl Berry <karl@freefriends.org> | 2020-10-11 20:51:37 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-10-11 20:51:37 +0000 |
commit | c1748f388233d142b9d27c4e12aaf592b2f38b09 (patch) | |
tree | bb6bf6786b32eaa42cdfe29ae60a3a98df9856c5 /Master/texmf-dist | |
parent | 33ce5493138d18ba17c234fcc135000e79e9b00c (diff) |
swfigure (11oct20)
git-svn-id: svn://tug.org/texlive/trunk@56637 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/HSfakeimage.jpg | bin | 0 -> 21156 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/NFfakeimage.jpg | bin | 0 -> 17036 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/README.txt | 45 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/RFfakeimage.jpg | bin | 0 -> 24216 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/SWfakeImage.jpg | bin | 0 -> 31599 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/VSfakeimage.jpg | bin | 0 -> 26148 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/swfigure-examples.pdf | bin | 0 -> 531258 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/swfigure-examples.tex | 434 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/swfigure/swfigure.pdf | bin | 0 -> 452825 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/swfigure/swfigure.dtx | 855 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/swfigure/swfigure.sty | 234 |
11 files changed, 1568 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/swfigure/HSfakeimage.jpg b/Master/texmf-dist/doc/latex/swfigure/HSfakeimage.jpg Binary files differnew file mode 100644 index 00000000000..47d8bb8d943 --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/HSfakeimage.jpg diff --git a/Master/texmf-dist/doc/latex/swfigure/NFfakeimage.jpg b/Master/texmf-dist/doc/latex/swfigure/NFfakeimage.jpg Binary files differnew file mode 100644 index 00000000000..098557cd2f9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/NFfakeimage.jpg diff --git a/Master/texmf-dist/doc/latex/swfigure/README.txt b/Master/texmf-dist/doc/latex/swfigure/README.txt new file mode 100644 index 00000000000..702eefb35da --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/README.txt @@ -0,0 +1,45 @@ +%% +%% This is file `README.txt', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% swfigure.dtx (with options: `readme') +%% +%% Copyright (C) 2020 Claudio Beccari all rights reserved. +%% License information appended +%% + +File README.txt for package swfigure + [2020-10-11 v.0.9.07 Managing large and spread wide figures] +This bundle contains file the swfigure.dtx and README.txt files. + +This file README.txt contains the licence, the status, and some +general information. Save both in a .../source/latex/swfigure +folder either in the main TeX system tree or in your personal +tree. + +This swfigure.dtx file is a self extracting documented one. +Run pdfLaTeX at least twice on this file in order to get all +references correct, and you obtain the swfigure.pdf and the +swfigure.sty files. After extraction move the .sty file to +the .../tex/latex/swfigure folder, and move the .pdf file to +the .../doc/latex/swfigure folder. From the original folder +.../source/latex/swfigure move all files, except the .dtx and +the .txt files, to the bin. + +The author disclaims any liability from every possible inconvenience +deriving from the use of this software; you use it at your own risk. + +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" +%% +%% This work consists of files swfigure.dtx and READEME.txt, and the derived +%% files swfigure.sty and swfigure.pdf +%% +%% +%% End of file `README.txt'. diff --git a/Master/texmf-dist/doc/latex/swfigure/RFfakeimage.jpg b/Master/texmf-dist/doc/latex/swfigure/RFfakeimage.jpg Binary files differnew file mode 100644 index 00000000000..be547643e96 --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/RFfakeimage.jpg diff --git a/Master/texmf-dist/doc/latex/swfigure/SWfakeImage.jpg b/Master/texmf-dist/doc/latex/swfigure/SWfakeImage.jpg Binary files differnew file mode 100644 index 00000000000..bd247babebe --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/SWfakeImage.jpg diff --git a/Master/texmf-dist/doc/latex/swfigure/VSfakeimage.jpg b/Master/texmf-dist/doc/latex/swfigure/VSfakeimage.jpg Binary files differnew file mode 100644 index 00000000000..71e5ee0473e --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/VSfakeimage.jpg diff --git a/Master/texmf-dist/doc/latex/swfigure/swfigure-examples.pdf b/Master/texmf-dist/doc/latex/swfigure/swfigure-examples.pdf Binary files differnew file mode 100644 index 00000000000..5ef68cb2cea --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/swfigure-examples.pdf diff --git a/Master/texmf-dist/doc/latex/swfigure/swfigure-examples.tex b/Master/texmf-dist/doc/latex/swfigure/swfigure-examples.tex new file mode 100644 index 00000000000..17513fdd2f8 --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/swfigure-examples.tex @@ -0,0 +1,434 @@ +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex +\documentclass[twoside,notitlepage]{report}\errorcontextlines=100 +\usepackage[utf8]{inputenc} +\usepackage{lmodern,textcomp,multicol,enumitem,mflogo,xcolor,fancyvrb} +\usepackage{swfigure} + +\providecommand*\diff{\mathop{}\!\mathrm{d}} +\providecommand\cs{} + \renewcommand\cs[1]{\normalfont{\texttt{\char92#1}}} +\providecommand\meta{} + \renewcommand\meta[1]{{\normalfont\textlangle\textit{#1}\textrangle}} +\providecommand\marg{} + \renewcommand\marg[1]{\texttt{\{\meta{#1}\}}} +\providecommand\Marg{} + \renewcommand\Marg[1]{\texttt{\{#1\}}} +\providecommand\oarg{} + \renewcommand\oarg[1]{\texttt{[\meta{#1}]}} +\providecommand\Oarg{} + \renewcommand\Oarg[1]{\texttt{[#1]}} +\providecommand\aarg{} + \renewcommand\aarg[1]{\texttt{<\meta{#1}>}} +\providecommand\Aarg{} + \renewcommand\Aarg[1]{\texttt{<#1>}} +\providecommand\parg{} + \renewcommand\parg[1]{\texttt{(\meta{#1})}} +\providecommand\Parg{} + \renewcommand\Parg[1]{\texttt{(#1)}} +\providecommand\pack{} + \renewcommand\pack[1]{\textsf{#1}} +\providecommand\eTeX{} + \renewcommand\eTeX{\lower0.5ex\hbox{$\varepsilon\!$}\TeX} +\providecommand\file{} + \renewcommand\file[1]{{\normalfont\sffamily\slshape#1}} + +\newbox\SWsynt + +\newenvironment{medaglione}% +{\par\medskip\fboxrule=0.8pt\fboxsep6pt\relax +\begin{lrbox}{\SWsynt}\minipage{\dimexpr\linewidth-2\fboxsep-2\fboxrule}}% +{\endminipage\end{lrbox}\noindent\fbox{\box\SWsynt}\par\medskip} + +\newenvironment{ttsyntax}{\medaglione\raggedright\ttfamily\obeylines}{\endmedaglione} + +\providecommand\setfontsize{} +\DeclareRobustCommand\setfontsize[2][1.2]{% +\linespread{#1}\fontsize{#2}{#2}\selectfont} + + +\makeatletter +\providecommand\GetFileInfo[1]{% + \def\filename{#1}% + \def\@tempb##1 v.##2 ##3\relax##4\relax{% + \def\filedate{##1}% + \def\fileversion{##2}% + \def\fileinfo{##3}}% + \edef\@tempa{\csname ver@#1\endcsname}% + \expandafter\@tempb\@tempa\relax? ? \relax\relax} + +\counterwithout{section}{chapter} + +\begin{document} +\GetFileInfo{swfigure.sty} +\title{The \pack{swfigure} package --- Usage examples} +\author{Claudio Beccari\thanks{Email: \texttt{claudio dot beccari at gmail dot com}}} +\date{Version \fileversion~---~ Last revised \filedate} +\maketitle + +\begin{abstract} +Managing large images is not that straightforward to do. Package \pack{swfigure} was initially created to handle such large figures that required a whole spread to display them; the package initial letters SW are the acronym of Spread Wide. While developing this package, other display modes were introduced, so that with a single user command it is possible to display a large image in five different modes, that are to be chosen according to the figure aspect ratio, and the page design of the document. +This package works pretty well with two side printed documents with a symmetrical page design, i.e. with the same dimension for the inner margins and, respectively, the outer margins. The documented \TeX\ file that describes the software does not have a symmetrical design, therefore this second file is necessary in order to show some examples. +\end{abstract} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Introduction} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +Please, before going on reading, set your PDF viewer so that it displays two pages at time, and with the even numbered pages on the left. Only with these settings you can see the spread wide images. Some viewers display the facing pages with a little gap between them; if you don't have available a viewer that avoids this gap, simply imagine that the gap did not exist. + +As far as we can say, we know that Preview.app on Macs does not use any gap. Okular on Linux does not use any gap, but traces a thin black line were the facing pages join. Adobe Reader for Windows and other platforms, has several settings for displaying two pages at a time, but only one eliminates the gap while displaying the even numbered page on the left. + +It is possible to see a spread wide figure in the next two pages; a fake figure is displayed and you see that the crossing of the diagonal and medial lines takes place exactly on the spine. It was composed with the following command: +\begin{flushleft}\ttfamily\obeylines +\cs{DFimage}Oarg{SW}\Marg{SWfakeimage}\Marg{A Spread Wide fake image}\Oarg{fig:SWfake} +\end{flushleft} + +\DFimage[SW]{SWfakeimage}{A spread wide fake image}[fig:SWfake] + +Other examples are shown in the following pages; the filling text is a generic text, not actually a non sense fake Latin wording such as that provided by the \pack{lipsum} package, but it is taken form package \pack{kantlipsum} where sentences appear as plain English, although we doubt that Emmanuel Kant wrote those very texts. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{The user macro} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +The only user macro defined by this pckge has the following syntax: +\begin{ttsyntax} +\cs{DFimage}\oarg{display mode}\marg{image file name}\oarg{lof entry}\% +\qquad\marg{caption}\oarg{label}\parg{height correction}\aarg{line correction} +\end{ttsyntax} +The arguments are described in detail in the twin document \file{swfigure.pdf}. We shortly repeat their meanings. +\begin{description}[noitemsep] +% +\item[\meta{display mode}] See below the various display modes. +% +\item[\meta{image file name}] is the name, optionally without extension, of the graphics file that contains the image; remember that the \LaTeX\ dependent typesetting engines accept graphics files in the formats described by the extensions \texttt{.pdf}, \texttt{.eps}, \texttt{.jpg}, \texttt{.png}, and few other less known formats. +% +\item[\meta{lof entry}] is a short phrase that shortens the figure caption. In practice it is the optional argument of the \cs{caption} command. +% +\item[\meta{caption}] is the caption text, in practice the mandatory argument of the \cs{caption} command. +% +\item[\meta{label}] is the argument of the \cs{label} command; it is evident that if this optional argument is not specified, the figure cannot be referenced with the usual commands \cs{ref}, \cs{pageref}, and other similar ones. +% +\item[\meta{height correction}] is an optional argument with a preset value of 0.8, it reduces the image height by that value, in order to assure that the figure has enough space for the image and its caption; if captions are not “narrative” (too many sentences) the value of 0.8 should be suited in most cases; the user, while revising the document drafts might decide to use a different value, of course always not greater than~1. This correction may be used with some display modes that concern only one page, not a full spread. +% +\item[\meta{line correction}] This optional integer number may correct the number of lines of the indention of the wrapping text around a tall and slim figure. +% +\end{description} + +We stress the first optional argument meaning, whose default value is \texttt{SW}. It specifies the \meta{display mode}. +\begin{description}[noitemsep] +% +\item[\texttt{SW}] is the acronym that specifies the \meta{display mode} for a Spread Wide figure; it consists into a full spread, without any text, and with its caption typeset in the external margin of the odd numbered page in a vertical fashion. Since this display mode needs to start on an even page, the user should carefully find the proper place where to insert the user macro \cs{DGimage} (named as “steering” macro, since it decides which large figure style to use), because it starts a new page and possibly inserts a blank page if the new one is odd numbered. +% +\item[\texttt{HS}] refers to a Horizontal Slim image, that requires a spread wide display mode, such that the first of the facing pages is an even numbered one, and with some text beneath both half images; since the caption is under the right half, the space occupied by this part of the image is higher than that in the facing page, it is necessary to equalise these vertical spaces, and the specific code takes care of this constraint. Also in this case the user should carefully chose the place where to insert the steering macro. +% +\item[\texttt{VS}] This case refers to a Vertical Slim image. this situation requires a really slim image, so that if its “height over width” ratio (its aspect ratio) si smaller than~2, the macro does not insert anything, except a message in its place, that informs the user about the cause of this refusal and suggests other display modes. The procedure is based on the use of the \pack{wrapfig} functionalities; this package has several limitations that the user should check in its documentation. Nevertheless, if there is enough “normal” text available to wrap the figure, the result is quite good. There are two parameters to fine tune the wrapped image with its caption: the \meta{height correction} and the \meta{line correction}. +% +\item[\texttt{NF}] This display mode is the Normal Figure \LaTeX\ kernel mode; the floating figure is floated to a “floats only” page; since it contains a large image this is a reasonable solution; if the caption is pretty lengthy, the \meta{height correction} comes handy to fine tune the space necessary to the caption. +% +\item[\texttt{RF}] This fifth display mode refers to the Rotated Figure obtainable by means of the \pack{lscape} package; here the package is not used, but a direct rotation is performed by the macro. Again the \meta{height correction} optional value may be useful in order to leave more or less space to the caption; if the latter is pretty wordy, a smaller value of the preset 0.8 value mai be chosen, while for a single line caption a slightly higher value may be convenient. +% +\end{description} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{A \texttt{HS} example} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +On pages~\pageref{fig:HSfake} and the preceding one there is an example of a horizontal slim image. + +As any dedicated reader can clearly see, the Ideal of +practical reason is a representation of, as far as I know, the things +in themselves; as I have shown elsewhere, the phenomena should only be +used as a canon for our understanding. The paralogisms of practical +reason are what first give rise to the architectonic of practical +reason. As will easily be shown in the next section, reason would +thereby be made to contradict, in view of these considerations, the +Ideal of practical reason, yet the manifold depends on the phenomena. +Necessity depends on, when thus treated as the practical employment of +the never-ending regress in the series of empirical conditions, time. +Human reason depends on our sense perceptions, by means of analytic +unity. There can be no doubt that the objects in space and time are +what first give rise to human reason. + +\DFimage[HS]{HSfakeimage}{A Horizontal Slim fake image}[fig:HSfake] + +Let us suppose that the noumena have nothing to do +with necessity, since knowledge of the Categories is a +posteriori. Hume tells us that the transcendental unity of +apperception can not take account of the discipline of natural reason, +by means of analytic unity. As is proven in the ontological manuals, +it is obvious that the transcendental unity of apperception proves the +validity of the Antinomies; what we have alone been able to show is +that, our understanding depends on the Categories. It remains a +mystery why the Ideal stands in need of reason. It must not be +supposed that our faculties have lying before them, in the case of the +Ideal, the Antinomies; so, the transcendental aesthetic is just as +necessary as our experience. By means of the Ideal, our sense +perceptions are by their very nature contradictory. + +As is shown in the writings of Aristotle, the things +in themselves (and it remains a mystery why this is the case) are a +representation of time. Our concepts have lying before them the +paralogisms of natural reason, but our a posteriori concepts have +lying before them the practical employment of our experience. Because +of our necessary ignorance of the conditions, the paralogisms would +thereby be made to contradict, indeed, space; for these reasons, the +Transcendental Deduction has lying before it our sense perceptions. +(Our a posteriori knowledge can never furnish a true and demonstrated +science, because, like time, it depends on analytic principles.) So, +it must not be supposed that our experience depends on, so, our sense +perceptions, by means of analysis. Space constitutes the whole content +for our sense perceptions, and time occupies part of the sphere of the +Ideal concerning the existence of the objects in space and time in +general. + +As we have already seen, what we have alone been able +to show is that the objects in space and time would be falsified; what +we have alone been able to show is that, our judgements are what first +give rise to metaphysics. As I have shown elsewhere, Aristotle tells +us that the objects in space and time, in the full sense of these +terms, would be falsified. Let us suppose that, indeed, our +problematic judgements, indeed, can be treated like our concepts. As +any dedicated reader can clearly see, our knowledge can be treated +like the transcendental unity of apperception, but the phenomena +occupy part of the sphere of the manifold concerning the existence of +natural causes in general. Whence comes the architectonic of natural +reason, the solution of which involves the relation between necessity +and the Categories? Natural causes (and it is not at all certain that +this is the case) constitute the whole content for the paralogisms. +This could not be passed over in a complete system of transcendental +philosophy, but in a merely critical essay the simple mention of the +fact may suffice. + +Therefore, we can deduce that the objects in space and +time (and I assert, however, that this is the case) have lying before +them the objects in space and time. Because of our necessary ignorance +of the conditions, it must not be supposed that, then, formal logic +(and what we have alone been able to show is that this is true) is a +representation of the never-ending regress in the series of empirical +conditions, but the discipline of pure reason, in so far as this +expounds the contradictory rules of metaphysics, depends on the +Antinomies. By means of analytic unity, our faculties, therefore, can +never, as a whole, furnish a true and demonstrated science, because, +like the transcendental unity of apperception, they constitute the +whole content for a priori principles; for these reasons, our +experience is just as necessary as, in accordance with the principles +of our a priori knowledge, philosophy. The objects in space and time +abstract from all content of knowledge. Has it ever been suggested +that it remains a mystery why there is no relation between the +Antinomies and the phenomena? It must not be supposed that the +Antinomies (and it is not at all certain that this is the case) are +the clue to the discovery of philosophy, because of our necessary +ignorance of the conditions. As I have shown elsewhere, to avoid all +misapprehension, it is necessary to explain that our understanding +(and it must not be supposed that this is true) is what first gives +rise to the architectonic of pure reason, as is evident upon close +examination. + +\DFimage[VS]{VSfakeimage}{A Vertical Slim fake image}[fig:VSfake](0.7)<2> +The things in themselves are what first give rise to +reason, as is proven in the ontological manuals. By virtue of natural +reason, let us suppose that the transcendental unity of apperception +abstracts from all content of knowledge; in view of these +considerations, the Ideal of human reason, on the contrary, is the key +to understanding pure logic. Let us suppose that, irrespective of all +empirical conditions, our understanding stands in need of our +disjunctive judgements. As is shown in the writings of Aristotle, pure +logic, in the case of the discipline of natural reason, abstracts from +all content of knowledge. Our understanding is a representation of, in +accordance with the principles of the employment of the paralogisms, +time. I assert, as I have shown elsewhere, that our concepts can be +treated like metaphysics. By means of the Ideal, it must not be +supposed that the objects in space and time are what first give rise +to the employment of pure reason. + +\DFimage[NF]{NFfakeimage}{A large Normal Figure fake image}[fig:NFfake] + +As is evident upon close examination, to avoid all +misapprehension, it is necessary to explain that, on the contrary, the +never-ending regress in the series of empirical conditions is a +representation of our inductive judgements, yet the things in +themselves prove the validity of, on the contrary, the Categories. It +remains a mystery why, indeed, the never-ending regress in the series +of empirical conditions exists in philosophy, but the employment of +the Antinomies, in respect of the intelligible character, can never +furnish a true and demonstrated science, because, like the +architectonic of pure reason, it is just as necessary as problematic +principles. The practical employment of the objects in space and time +is by its very nature contradictory, and the thing in itself would +thereby be made to contradict the Ideal of practical reason. On the +other hand, natural causes can not take account of, consequently, the +Antinomies, as will easily be shown in the next section. +Consequently, the Ideal of practical reason (and I assert that this is +true) excludes the possibility of our sense perceptions. Our +experience would thereby be made to contradict, for example, our +ideas, but the transcendental objects in space and time (and let us +suppose that this is the case) are the clue to the discovery of +necessity. But the proof of this is a task from which we can here be +absolved. + +\DFimage[RF]{RFfakeimage}{A large Rotated Figure fake image}[fig:RFfake] + +As any dedicated reader can clearly see, the Ideal of +practical reason is a representation of, as far as I know, the things +in themselves; as I have shown elsewhere, the phenomena should only be +used as a canon for our understanding. The paralogisms of practical +reason are what first give rise to the architectonic of practical +reason. As will easily be shown in the next section, reason would +thereby be made to contradict, in view of these considerations, the +Ideal of practical reason, yet the manifold depends on the phenomena. +Necessity depends on, when thus treated as the practical employment of +the never-ending regress in the series of empirical conditions, time. +Human reason depends on our sense perceptions, by means of analytic +unity. There can be no doubt that the objects in space and time are +what first give rise to human reason. + +Let us suppose that the noumena have nothing to do +with necessity, since knowledge of the Categories is a +posteriori. Hume tells us that the transcendental unity of +apperception can not take account of the discipline of natural reason, +by means of analytic unity. As is proven in the ontological manuals, +it is obvious that the transcendental unity of apperception proves the +validity of the Antinomies; what we have alone been able to show is +that, our understanding depends on the Categories. It remains a +mystery why the Ideal stands in need of reason. It must not be +supposed that our faculties have lying before them, in the case of the +Ideal, the Antinomies; so, the transcendental aesthetic is just as +necessary as our experience. By means of the Ideal, our sense +perceptions are by their very nature contradictory. + +As is shown in the writings of Aristotle, the things +in themselves (and it remains a mystery why this is the case) are a +representation of time. Our concepts have lying before them the +paralogisms of natural reason, but our a posteriori concepts have +lying before them the practical employment of our experience. Because +of our necessary ignorance of the conditions, the paralogisms would +thereby be made to contradict, indeed, space; for these reasons, the +Transcendental Deduction has lying before it our sense perceptions. +(Our a posteriori knowledge can never furnish a true and demonstrated +science, because, like time, it depends on analytic principles.) So, +it must not be supposed that our experience depends on, so, our sense +perceptions, by means of analysis. Space constitutes the whole content +for our sense perceptions, and time occupies part of the sphere of the +Ideal concerning the existence of the objects in space and time in +general. + +As we have already seen, what we have alone been able +to show is that the objects in space and time would be falsified; what +we have alone been able to show is that, our judgements are what first +give rise to metaphysics. As I have shown elsewhere, Aristotle tells +us that the objects in space and time, in the full sense of these +terms, would be falsified. Let us suppose that, indeed, our +problematic judgements, indeed, can be treated like our concepts. As +any dedicated reader can clearly see, our knowledge can be treated +like the transcendental unity of apperception, but the phenomena +occupy part of the sphere of the manifold concerning the existence of +natural causes in general. Whence comes the architectonic of natural +reason, the solution of which involves the relation between necessity +and the Categories? Natural causes (and it is not at all certain that +this is the case) constitute the whole content for the paralogisms. +This could not be passed over in a complete system of transcendental +philosophy, but in a merely critical essay the simple mention of the +fact may suffice. + +Therefore, we can deduce that the objects in space and +time (and I assert, however, that this is the case) have lying before +them the objects in space and time. Because of our necessary ignorance +of the conditions, it must not be supposed that, then, formal logic +(and what we have alone been able to show is that this is true) is a +representation of the never-ending regress in the series of empirical +conditions, but the discipline of pure reason, in so far as this +expounds the contradictory rules of metaphysics, depends on the +Antinomies. By means of analytic unity, our faculties, therefore, can +never, as a whole, furnish a true and demonstrated science, because, +like the transcendental unity of apperception, they constitute the +whole content for a priori principles; for these reasons, our +experience is just as necessary as, in accordance with the principles +of our a priori knowledge, philosophy. The objects in space and time +abstract from all content of knowledge. Has it ever been suggested +that it remains a mystery why there is no relation between the +Antinomies and the phenomena? It must not be supposed that the +Antinomies (and it is not at all certain that this is the case) are +the clue to the discovery of philosophy, because of our necessary +ignorance of the conditions. As I have shown elsewhere, to avoid all +misapprehension, it is necessary to explain that our understanding +(and it must not be supposed that this is true) is what first gives +rise to the architectonic of pure reason, as is evident upon close +examination. + +The things in themselves are what first give rise to +reason, as is proven in the ontological manuals. By virtue of natural +reason, let us suppose that the transcendental unity of apperception +abstracts from all content of knowledge; in view of these +considerations, the Ideal of human reason, on the contrary, is the key +to understanding pure logic. Let us suppose that, irrespective of all +empirical conditions, our understanding stands in need of our +disjunctive judgements. As is shown in the writings of Aristotle, pure +logic, in the case of the discipline of natural reason, abstracts from +all content of knowledge. Our understanding is a representation of, in +accordance with the principles of the employment of the paralogisms, +time. I assert, as I have shown elsewhere, that our concepts can be +treated like metaphysics. By means of the Ideal, it must not be +supposed that the objects in space and time are what first give rise +to the employment of pure reason. + +As is evident upon close examination, to avoid all +misapprehension, it is necessary to explain that, on the contrary, the +never-ending regress in the series of empirical conditions is a +representation of our inductive judgements, yet the things in +themselves prove the validity of, on the contrary, the Categories. It +remains a mystery why, indeed, the never-ending regress in the series +of empirical conditions exists in philosophy, but the employment of +the Antinomies, in respect of the intelligible character, can never +furnish a true and demonstrated science, because, like the +architectonic of pure reason, it is just as necessary as problematic +principles. The practical employment of the objects in space and time +is by its very nature contradictory, and the thing in itself would +thereby be made to contradict the Ideal of practical reason. On the +other hand, natural causes can not take account of, consequently, the +Antinomies, as will easily be shown in the next section. +Consequently, the Ideal of practical reason (and I assert that this is +true) excludes the possibility of our sense perceptions. Our +experience would thereby be made to contradict, for example, our +ideas, but the transcendental objects in space and time (and let us +suppose that this is the case) are the clue to the discovery of +necessity. But the proof of this is a task from which we can here be +absolved. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Used commands} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +The various large fake images have been inserted with the following commands: +\begin{itemize}[noitemsep] +% +\item figure~\ref{fig:SWfake} +\begin{Verbatim}[fontsize=\setfontsize{9.7}] +\DFimage[SW]{SWfakeimage}{A Spread Wide fake image}[fig:SWfake] +\end{Verbatim} +% +\item figure~\ref{fig:HSfake} +\begin{Verbatim}[fontsize=\setfontsize{9}] +\DFimage[HS]{HSfakeimage}{A Horizonta Slim fake image}[fig:HSfake] +\end{Verbatim} +% +\item figure~\ref{fig:VSfake} +\begin{Verbatim}[fontsize=\setfontsize{8}] +\DFimage[VS]{VSfakeimage}{A Vertical Slim fake image}[fig:VSfake](0.7)<2> +\end{Verbatim} +% +\item figure~\ref{fig:NFfake} +\begin{Verbatim} +\DFimage[NF]{NFfakeimage}{A large Normal Figure fake image}% + [fig:NFfake] +\end{Verbatim} +% +\item figure~\ref{fig:RFfake} +\begin{Verbatim} +\DFimage[RF]{RFfakeimage}{A large Rotated Figure fake image}% + [fig:RFfake] +\end{Verbatim} +\end{itemize} +% +\listoffigures +\end{document} + diff --git a/Master/texmf-dist/doc/latex/swfigure/swfigure.pdf b/Master/texmf-dist/doc/latex/swfigure/swfigure.pdf Binary files differnew file mode 100644 index 00000000000..5e3fad2b04f --- /dev/null +++ b/Master/texmf-dist/doc/latex/swfigure/swfigure.pdf diff --git a/Master/texmf-dist/source/latex/swfigure/swfigure.dtx b/Master/texmf-dist/source/latex/swfigure/swfigure.dtx new file mode 100644 index 00000000000..d848cae2fae --- /dev/null +++ b/Master/texmf-dist/source/latex/swfigure/swfigure.dtx @@ -0,0 +1,855 @@ +% \iffalse +% !TEX encoding = UTF-8 Unicode +% !TEX TS-program = pdflatex +%<*internal> +\begingroup +\input docstrip.tex +\keepsilent +\preamble + + Copyright (C) 2020 Claudio Beccari all rights reserved. + License information appended + +\endpreamble + +\postamble + +Distributable under the LaTeX Project Public License, +version 1.3c or higher (your choice). The latest version of +this license is at: http://www.latex-project.org/lppl.txt + +This work is "maintained" + +This work consists of files swfigure.dtx and READEME.txt, and the derived +files swfigure.sty and swfigure.pdf + +\endpostamble +\askforoverwritefalse + +\generate{\file{swfigure.sty}{\from{swfigure.dtx}{package}}} +%\generate{\file{README.txt}{\from{swfigure.dtx}{readme}}} + +\def\tmpa{plain} +\ifx\tmpa\fmtname\endgroup\expandafter\bye\fi +\endgroup +%</internal> +% \fi +% +% \iffalse +%<*package> +%<package>\NeedsTeXFormat{LaTeX2e}[2020/01/01] +%</package> +%<*driver> +\ProvidesFile{swfigure.dtx}% +%</driver> +%<+package>\ProvidesPackage{swfigure}% +%<+readme>File README.txt for package swfigure +%<*package|readme> + [2020-10-11 v.0.9.07 Managing large and spread wide figures] +%</package|readme> +%<*driver> +\documentclass[a4paper]{ltxdoc}\errorcontextlines=9 +\hfuzz 10pt +\usepackage[utf8]{inputenc} +\usepackage{lmodern,textcomp,multicol,enumitem,mflogo,xcolor} +\usepackage{swfigure} + +\providecommand*\diff{\mathop{}\!\mathrm{d}} +\renewcommand\meta[1]{{\normalfont\textlangle\textit{#1}\textrangle}} +\renewcommand\marg[1]{\texttt{\{\meta{#1}\}}} +\providecommand\Marg{} +\renewcommand\Marg[1]{\texttt{\{#1\}}} +\providecommand\oarg{} +\renewcommand\oarg[1]{\texttt{[\meta{#1}]}} +\providecommand\Oarg{} +\renewcommand\Oarg[1]{\texttt{[#1]}} +\providecommand\aarg{} +\renewcommand*\aarg[1]{\texttt{<\meta{#1}>}} +\providecommand\Aarg{} +\renewcommand\Aarg[1]{\texttt{<#1>}} +\providecommand\parg{} +\renewcommand\parg[1]{\texttt{(\meta{#1})}} +\providecommand\Parg{} +\renewcommand\Parg[1]{\texttt{(#1)}} +\providecommand\eTeX{} +\newbox\SWsynt +\renewcommand\eTeX{\lower0.5ex\hbox{$\varepsilon\!$}\TeX} + +\newenvironment{medaglione}% +{\par\medskip\fboxrule=0.8pt\fboxsep6pt\relax +\begin{lrbox}{\SWsynt}\minipage{\dimexpr\linewidth-2\fboxsep-2\fboxrule}}% +{\endminipage\end{lrbox}\noindent\fbox{\box\SWsynt}\par\medskip} + +\newenvironment{ttsyntax}{\medaglione\raggedright\ttfamily\obeylines}{\endmedaglione} + +\providecommand\setfontsize{} +\DeclareRobustCommand\setfontsize[2][1.2]{% +\linespread{#1}\fontsize{#2}{#2}\selectfont} + +\GetFileInfo{swfigure.dtx} +\title{The \texttt{swfigure} package\\ +Managing large and spread wide figures} +\author{Claudio Beccari\thanks{E-mail: \texttt{claudio dot beccari at gmail dot com}}} +\date{Version \fileversion~---~ Last revised \filedate} + +\begin{document}\errorcontextlines=100 +\maketitle +\columnseprule=0.4pt +\begin{multicols}{2} + \tableofcontents + \end{multicols} + \DocInput{swfigure.dtx} +\end{document} +%</driver> +% \fi +%^^A \CheckSum{10}^^A Doesn't this work any more? +% +% \begin{abstract} +% This package defines a single command that with different options can +% insert large images into the document; those that occupy an entire +% spread s get split into two halves that are inserted on +% two facing pages in such a way that they merge when the document is read +% on the screen (set to double page view) or is printed in a well sewn +% book so that facing pages join correctly at the spine. +% This documentation is accompanied by another file +% |swfigure-examples.pdf| containing examples of this package several +% uses. +% \end{abstract} +% +%^^A \DFimage[SW]{SWfakeimage}{A large fake image}[fig:SWfake] +%^^A It does not work with the page design of this document. +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\section{Introduction} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Sometimes it is necessary to insert in a given document very large +% images; either they are larger than a spread, or they do not exceed +% the width of a spread. In the first case it is necessary to use +% to large sheets of paper folded in the proper way and inserted in the +% printed document as special inserts; or for documents to be read on +% the screen such large sheets have to be attached to the document as +% separate files to be viewed in windows different from that where the +% document is being read. +% +% In the other case it is possible to manage such large figures in +% different ways; we define a single command that, according to +% different settings, can insert such figures in five different display +% modes. +%\begin{enumerate}[noitemsep] +% \item +% The normal \LaTeX\ kernel full page display mode, but using +% the |figure| environment with the |[p]| placing option. Apparently +% there is no need to define a new command for this display mode, except +% the advantage of using the same command as the other modes and a few +% small further functionalities that the new command has available. +%\item +% The landscape display mode available with the |lscape| package +% and other similar ones. Again this display mode appears superfluous, +% but the advantage is to use the same command as with the other +% display modes +%\item +% The screen-wide display mode, where two facing pages display a large +% figure divided in two halves, each one set in its page shifted to the +% spine so as to occupy on each page the text width plus the internal +% margin width; with suitable aspect ratio, both facing pages are +% practically full. No other text appears in this display mode, except +% the caption in the right page external margin. +%\item +% The slim screen-wide image is similar to the previous mode, but since +% the figure is slim, it is set at the top of two facing pages, with text +% underneath; the caption is under the right figure half in the right +% page, and the left text block height is set so that that the first +% lines of both text blocks are aligned. +%\item +% The slim tall image is set to the side of the text block that wraps +% it. Recurse is made to the |wrapfig| package, therefore the software +% might sometimes hick-up a little bit, because of the idiosyncrasies of +% |wrapfig| that performs very well in most but not all circumstances; +% see that package documentation for such |wrapfig| limitations. With +% this |wsfigure| package we limit the use of this display mode to +% images that have a “height over width” ratio not lower than~2; we +% provide also some option arguments so as to correct small imperfections +% in the sizing of the text indention +%\end{enumerate} +% +% In any case, depending on the page geometry and the image aspect +% ratio, it is very handy to have available a single command that +% changes the display mode by just changing a single input optional +% argument. In facts the user might start with one of the five +% described display modes; after examining the document daft the +% user might chose another display mode, and it suffices to change +% the optional argument, without changing the whole code. +% +% \bigskip +% +% \noindent\fbox{\textcolor{red}{WARNING}}\quad This package performs +% well with documents typeset in \texttt{twoside} mode, and with a page +% design where the internal margins of both the odd and even pages +% are equal (symmetrical page design). For example, it does not work +% with this document designed to work in \texttt{oneside} mode and +% where the the left page margin is always larger than the right one +% of each page; this page design is functional to the documentation +% of the \TeX\ system software. +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\section{Installation} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This package is already installed with any complete and up to date +% \TeX\ system distribution, \TeX\ Live or MiK\TeX. +% +% Should the user have available a basic or a partial \TeX\ system +% installation, the simplest way to install this package is to download +% the |swfigure.zip| file from the Comprehensive \TeX\ Archive Network +% (CTAN), and decompress it either in the very folder where there is +% the document main or single document file or, for a general use, in +% the user personal |texmf| tree; it is possible that the user should +% directly create this personal tree; how to do it is described in the +% documentation of the user \TeX\ system distribution. +% +% The same holds true if the user employs a vintage \TeX\ system +% distribution; this package requires the \LaTeX3 modern language +% functionalities, therefore a \LaTeX\ kernel with a date after +% 2019-01-01. Lacking this modern kernel, the package is strongly +% limited, because packages |xparse| and |xfp| are used for its +% internal workings. +% +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\section{Usage}\label{sec:Usage} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% This package defines a single user command, |DFimage| to be used +% with the following syntax: +%\begin{ttsyntax} +%\cs{DFimage}\oarg{display mode}\marg{image file name}\oarg{lof entry}\marg{caption}\oarg{label}\% +%\qquad\parg{heigth correction}\aarg{line correction} +%\end{ttsyntax} +% where: +%\begin{description}[noitemsep] +%\item[\meta{display mode}] +% is one of the following uppercase acronyms: +% \texttt{NF} (Normal Figure), \texttt{RF} (Rotated Figure), +% \texttt{SW} (Spread Wide image), \texttt{HS} (Horizontal Spread-wide +% image), and \texttt{VS} (Vertical Slim image). +%\item[\meta{image fie name}] +% Is the name of the image graphic file; remember that the \LaTeX based +% \TeX\ system typesetting programs accept graphic files in the formats +% with extensions \texttt{.pdf}, \texttt{.eps}, \texttt{.jpg}, +% \texttt{.png}, and few other less common ones. It is not necessary to +% specify the extension, but it is not forbidden. +%\item[\meta{lof entry}] +% is the optional entry to the List Of Figures; it defaults to the +% \meta{caption} text, but if the latter is sort of lengthy, it is +% better to enter a shorter text in that list. +%\item[\meta{caption}] +% is the caption text. +%\item[\meta{label}] +% this optional argument is the string that forms the argument of the +% \cs{label} command; of course, if this argument is not specified, +% the figure number and its page cannot be referenced with \cs{ref}, +% \cs{pageref} and other similar commands. +%\item[\meta{height correction}] +% This normal parenthesis delimited optional argument is a fractional +% number lower than~1 (default 0.8) with which to further scale the +% scaled image height to be included; it is used by some display modes, +% and it is ignored by others. +%\item[\meta{line correction}] is an angle bracket delimited optional +% argument preset to zero. It is relevant only with the slim +% vertical image display mode. Sometimes the |wrapfig| package +% indents the wrapping text in such a way as to leave to much or too +% little vertical space around the image and its caption; by examining +% the document drafts it is possible to increase or decrease the +% vertical space by any (integer) number of lines. +%\end{description} +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \section{Display mode peculiarities} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Each of the listed display modes has its own pros and cons. +% In the following the phrase “aspect ratio” refers to the “height +% over width” ratio either of the image or of the available space +% where to put the image and possibly its caption. +%\begin{description}[noitemsep] +% +%\item[\texttt{NF}] +% This display mode is convenient when the image +% aspect ratio is close to the text block one. Of course the user +% does not know in advance the vertical space occupied by the caption, +% therefore the optional \meta{height correction} comes handy for +% small adjustments; this display mode is fully and freely floating, +% although its positioning is fixed to~|[p]|. +% +%\item[\texttt{RF}] +% This display mode is convenient when the image +% aspect ratio is close to the reciprocal of the text block one. This +% mode accepts the \meta{height correction} in order to leave space +% to the caption. It is a fully and freely floating object with the +% same pros and cons as the \texttt{NF} display mode. +% +%\item[\texttt{SW}] +% This display mode is convenient when a really large +% image requires two pages to display all its details; its aspect ratio +% should be close to the two page aspect ratio of the total space +% available for the two page spread; depending on the page design this +% total space approximate value probably is close to~0.5. +% The object to be included in the document should start on an even +% page, therefore it moves to the first even page available; this +% implies that the last document page before the spread wide image +% may be blank or may be shorter than the other text pages; the user +% then should help the automatic positioning by choosing very carefully +% where to insert the \cs{DFfigure} command in the source text; it can +% even set it within a paragraph and the command provides a new page +% just after the line that contains the \cs{DFfigure} command; +% therefore if the paragraph is close to the end of an odd page and +% the position of \cs{DFfigure} command is properly positioned within this +% paragraph, the spread wide insertion would not disturb the quality +% of the typeset document. +% +%\item[\texttt{HS}] +% This display mode is convenient when the initial image aspect +% ratio is very small; if it is smaller than~0.3 its insertion +% leaves enough space beneath the two image halves (plus caption) +% so that normal text can fill the space under such spread wide +% slim figure. The constrains described for display mode \texttt{SW} +% apply also to this mode. +% +%\item[\texttt{VS}] +% This mode is convenient for tall and slim figures with aspect ratio +% not lower than~2; but for obvious reasons, it should not be too +% large, let's say not higher than about~3. As always this depends on +% the page design and the caption size. The limitations of the +% underlying of the |wrapfig| package forbids its usage too close to +% section headings, explicit lists and texts typeset in special modes +% with different measure than normal text. Again it is up to the user +% to chose where to insert the \cs{DFfigure} command. If the aspect +% ratio of the image to include is lower than~2, this message is printed +% in the document where the image should appear (of course with |#2| replaced by the actual image file name): +%\begin{verbatim} +% =========================================== +% Figure #2 is not tall enough. +% Consider using a display mode different +% from VS; may be NF or RF are better suited. +% =========================================== +% Nothing done! +% =========================================== +%\end{verbatim} +%^^A +%\end{description} +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \section{Acknowlegements} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This package would not exist if Heinrich Flech did not need +% to insert several types of large images in his documents; he asked +% me to create suitable commands and/or environments and he tested +% all the series of progressive developments of this package; believing +% that this package might be useful to other \TeX\ users, he invited +% me to submit the result to the \TeX\ community, and here it is. +% Heinrich did not want his name as an author, because he insists +% that he was “just” a tester. He was precious and I warmly thank him. +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{thebibliography}{9} +%\bibitem{bib:xparse} The \LaTeX3 Project, \emph{The \texttt{xparse} package} --- Document command parser. Release date 2020-05-15. PDF document readable with \texttt{texdoc xparse}. +%\bibitem{bib:xfp} The \LaTeX3 Project, \emph{The \texttt{xfp} package} --- Floating Point Unit. Release date 2020-05-15. PDF document readable with \texttt{texdoc xfp}. +%\bibitem{bib:Int3} The \LaTeX3 Project, \emph{The \LaTeX3 interfaces}. Release date 2020-09-24. PDF Document readable with \texttt{texdoc interface3}. +%\bibitem{bib:graphics} D.P.~Carlisle and The \LaTeX3 Project, \emph{Packages in the `graphics' bundle}. Release date 2020-08-21. PDF document readable with \texttt{texdoc grfguide}. +%\bibitem{bib:etoolbox} P. Lehman and J Wright, \emph{the \texttt{etoolbox} Package} --- An e-TeX Toolbox for Class and Package Authors. version 2.5j, released on 2020-08-24. PDF document readable with \texttt{texdoc etoolbox}. +%\bibitem{bib:lscape} D.P. Carlisle, \emph{The \texttt{lscape} package}. Version 3.02 released on 2020-05-28. PDF document readable with \texttt{texdoc lscape}. +%\bibitem{bib:afterpage} D.P. Carlisle, \emph{The \texttt{afterpage} package}. Version 1.08 released on 2014-10-28. PDF document readable with \texttt{texdoc afterpage}. +%\bibitem{bib:wrapfig} D. Arseneau, \emph{The \texttt{wrapfig} package}. Version 3.6 released on 2003-01-31. +%\bibitem{bib:memman} P. Wilson, \emph{The Memoir Class for Configurable Typesetting} ---User guide. Version 3.7m released 2020-09-10. PDF document readable with \texttt{texdoc memman}. +%\end{thebibliography} +% +% \StopEventually{} +% +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \section{The code} +%^^A%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% The required \TeX\ format and is date, and the identification of this +% package have already ben inserted by the initial commands of this +% documented file. +% +% Here we call the initial required packages and, since the necessary +% software to define some \LaTeX3 (L3) language “functions” are already +% part of the \LaTeX\ kernel, we just use them in order to define a +% robust \LaTeXe/L3 interface to create a testing macro that accepts +% many logical operators that act on items that, besides being boolean +% variables, are also numerical expressions connected with relation +% operators; for further details it suffices to examine the +% |interface3.pdf| file, that is integral part of any recent \TeX\ +% system distribution. +% +% The syntax of the new testing macro is the following: +%\begin{ttsyntax} +%\cs{fptest}\marg{test}\marg{true}\marg{false} +%\end{ttsyntax} +% The logical operators that are usable in the \meta{text} phrase +% are \verb+||+ (\texttt{OR}), \verb+&&+ (\texttt{and}), and \verb+!+ +% (\texttt{NOT}), plus other less common ones; the \verb+!+ negates the +% status of boolean variables, but also the numerical relation operators; +% these, on turn, may be paired so that, for example |>=| is the same +% as~|!<|. +% +% The |trace| package is still present in this beta version of the +% package; it will not be present in the next stable versions. +% Packages |graphicx|, |afterpage|, and |wrapfig| are functional +% for this package. In order to avoid “Option Clash” messages, such +% packages are loaded without any option; should the user load some +% or all of them with options, this operation must be done +% \emph{before} loading this package. +%\iffalse +%<*package> +%\fi +% \begin{macrocode} +\RequirePackage{etoolbox} +\RequirePackage{xparse} +\RequirePackage{xfp} + +\ExplSyntaxOn +\AtBeginDocument{% +\ProvideExpandableDocumentCommand\fptest{m m m}{% + \fp_compare:nTF{#1}{#2}{#3}} +} +\ExplSyntaxOff + +\RequirePackage{trace} + +\RequirePackage{graphicx} +\RequirePackage{afterpage} +\RequirePackage{wrapfig} + +% \end{macrocode} +% We define some dimension and some counter registers; to some dimensions +% we assign parameters relating to the page design. We also compute +% the dimensions of the available spread space so as to have available +% the elements to compare the aspect ratios of the images and of the +% available spaces. +% \begin{macrocode} +\newdimen\internalmargin +\internalmargin=\dimexpr\oddsidemargin+1in+1bp\relax +\newdimen\spreadwidth +\spreadwidth=\dimexpr 2\textwidth+2\internalmargin\relax +% +\newdimen\DFwidth +\newdimen\DFheight +\newdimen\DFhalfwidth +\newdimen\DFheight +\newdimen\FigSpace +\newsavebox\DFtotalimage +\newsavebox\DFimageI +\newsavebox\DFimageII +\newsavebox\RFbox +\newdimen\VS@textwidth +\newcount\VS@lines + +% \end{macrocode} +% The following caption-like command recompiles the captions within +% a zero height vertical box and deals with the mandatory and optional +% arguments according to the following syntax: +%\begin{ttsyntax} +%\cs{DFcaption}\oarg{lof entry}\marg{caption}\oarg{label} +%\end{ttsyntax} +% Notice that the ]lof entry defaults to the full caption text if +% a different text is not explicitly entered. +% This command is specific those those display modes that compose +% the caption in vertical mode, therefore the measure is the +% |\textheight|. +% \begin{macrocode} +\NewDocumentCommand\DFcaption{O{#2} m o}{\refstepcounter{figure}% + \vtop to 0pt{\hsize=\textheight\parindent=0pt\leavevmode + Figure \thefigure\quad #2\vss}% + \addcontentsline{lof}{figure}{\protect\numberline{\thefigure}#1} + \IfValueT{#3}{\label{#3}}\relax% +} + +% \end{macrocode} +% The |\cleartoevenpage| command may already exist in the document class. +% We prefer to make an absolute redefinition so as to be sure that it +% performs as we need in this package. We tested with the |memoir| +% class that already has such a command, and no problems were found +% +% \begin{macrocode} +\DeclareRobustCommand\cleartoevenpage{% + \clearpage\ifodd\value{page}\null\clearpage\fi} +% \end{macrocode} +% +% Now we define the “real” user macro necessary to chose the +% \meta{display mode} and the various parameters necessary for the +% desired one. See section~\ref{sec:Usage} on page\pageref{sec:Usage} +% for its syntax and the other necessary arguments. Notice that only +% two arguments are mandatory: the \meta{image file name} and the +% \meta{caption} text. All the other five optional parameters are +% delimited by various delimiters; the first one, \meta{display mode} +% has as default setting the acronym \texttt{SW} for a “Spread-Wide” +% display mode; this mode was the one this package was initially +% conceived for, and its initials recall this priority. All other +% modes came afterwards. the other optional parameters may have a +% default value, but they are ignored by certain modes that don use +% those parameters. As for the previous macro |\DFimage|, here the \meta{lof entry} defaults to the full \meta{caption} text. +% +% Actually \cs{DFimage} just examines the \meta{display mode}, and +% accordingly passes the necessary parameters to the actual macros +% that implement the various mode displays. It outputs an error +% message if the \meta{display mode} acronym was misspelt. +% \begin{macrocode} +\NewDocumentEnvironment{DFimage}{O{SW} m O{#4} m o D(){0.8} D<>{0}}{% +\ifstrequal{#1}{SW}% + {% + \SWfigure{#2}[#3]{#4}[#5]% + }% + {\ifstrequal{#1}{NF}% + {% + \NFfigure{#2}[#3]{#4}[#5](#6)% + }% + {\ifstrequal{#1}{RF}% OK + {% + \RFfigure{#2}[#3]{#4}[#5]% + }% + {\ifstrequal{#1}{VS}% + {% + \VSfigure{#2}[#3]{#4}[#5](#6)<#7>% + }% + {\ifstrequal{#1}{HS} + {% + \HSfigure{#2}[#3]{#4}[#5](#6)% + }% + {\PackageWarning{swfigure}% + {% + **************************************\MessageBreak + Option #1\space is not valid \MessageBreak + Nothing done \MessageBreak + Image #2\space was not processed \MessageBreak + **************************************\MessageBreak}% + }% + }% + }% + }% + }% +}% + +% \end{macrocode} +% In the following subsection the five specific display mode macros +% are examined and commented. +%^^A===================================== +% \subsection{The specific \cs{SWfigure} macro for Spread Wide images} +%^^A===================================== +%The specific macro for spread-wide images has the following syntax: +%\begin{ttsyntax} +%\cs{SWfigure}\marg{image file name}\oarg{lof entry}\marg{caption}\oarg{label} +%\end{ttsyntax} +% The various arguments have already been described; as you see the +% \meta{display mode} argument is not there anymore, as well as the +% last two optional arguments of |\DFfigure|. +% +% The working strategy is the following: first the typesetting mode is +% tested and, in case, a filling of the current line is +% performed and, by means of a |\vadjust| \TeX\ native macro, a +% |\newpage| command is executed; in any case a |\cleartoevenpapge| +% is executed so as to be sure to start any action while an even page +% is being processed. Then the initial image to be divided in two +% halves is stored in a box; this box is examined in order +% to find its total width and heigh, so as to be able to compute the +% aspect ratio. All other dimensions are examined to have available +% all the necessary data to display the image halves in the requested +% way. +% +% Notice that the |trim| option to |\includegraphics|, used to +% divide the initial image in two exact halves, (apparently) must +% be used without specifying other options; but, most important, +% it requires real numbers, not macros; therefore we have to make +% use of the usual dirty trick of defining an expanded macro +% |\x| within a group that the macro itself closes upon its +% expansion; in this way the principal part of the |\includegraphics| +% macro contains only keywords and numbers and may be executed +% without errors. +% +% Let $W$ be the total spread width and $w$ be the initial image +% width; let $H$ be the text height and $h$ the initial image height; +% compute the $A_\mathrm{W}$ to be the aspect ratio of the spread +% available space $H/W$. Similarly let $A_\mathrm{fig}$ aspect +% ratio of the initial image; we have to scale the image with a +% scaling factor such that the image keeps its aspect ratio, but +% its scaled height does not exceed the text block height, and +% its scaled width does not exceed the spread width; of course the +% aim is to maintain the scaled image as large as possible therefore +% we have to chose the most suited of the two scaling factors that +% can be computed from the given data and the inequalities +% described above. +% In mathematical terms we have to chose the initial image scaling +% factor $S$ such that: +%\begin{equation} +%S= \left\{ +% \begin{array}{lll} +% w/W &\mathrm{if}& A_\mathrm{fig} \leq A_\mathrm{W}\\ +% h/H &\mathrm{if}& A_\mathrm{fig} > A_\mathrm{W} +% \end{array} +%\right. +%\label{equ:ScalingFactor} +%\end{equation} +% This choice is made by testing the various ratios by means of +% the L3 |\fptest| macro, that computes such ratios and compares them. +% The commented line below shows exactly which lengths are used to +% compute the ratios, and which comparison is executed. Once the +% scaling factors are found the boxes containing the half figures +% are scaled and further on are inserted in floating figure +% environments; we use another dirty trick of matrioska dolls; this +% metaphor describes nested |\makeboxe|s used to mask their actual +% widths, but capable to push the images towards the spread +% spine. +% Eventually the caption is set in the right margin of the right +% spread page, rotated $90^\circ$ counterclockwise. +% \begin{macrocode} +\NewDocumentCommand\SWfigure{m O{#3} m o}{% +\unless\ifvmode + \csuse{@bsphack}% + \vadjust{\vspace{0pt plus1fill}\csuse{@esphack}\newpage}% +\fi +\cleartoevenpage +\setbox\DFtotalimage=\hbox{\includegraphics{#1}}% +\DFwidth=\wd\DFtotalimage \DFhalfwidth=0.5\DFwidth +\DFheight=\ht\DFtotalimage +\FigSpace=\dimexpr\textwidth+\internalmargin\relax +% +\setbox\DFimageI\hbox{\bgroup +\edef\x{\egroup\noexpand\includegraphics*[% +trim = 0 0 \the\DFhalfwidth\space 0]}\x{#1}}% +% +\setbox\DFimageII\hbox{\bgroup +\edef\x{\egroup\noexpand\includegraphics*[% +trim = \the\DFhalfwidth\space 0 0 0]}\x{#1}}% +% +% h/w > H/W +\fptest{\DFheight/\DFhalfwidth > \textheight/\FigSpace}% + {\edef\DFscalefactor{\fpeval{\textheight/\DFheight}}}% + {\edef\DFscalefactor{\fpeval{\FigSpace/\DFhalfwidth}}}% +% +\setbox\DFimageI=\hbox{\scalebox{\DFscalefactor}{\usebox{\DFimageI}}}% +\setbox\DFimageII=\hbox{\scalebox{\DFscalefactor}{\usebox{\DFimageII}}}% +% +\begin{figure}[p]% +\vbox to\textheight{\vss\hsize=\textwidth%\ +\makebox[\hsize][l]{\makebox[\FigSpace][r]{\box\DFimageI}}\vss}% +\end{figure}\clearpage +% +\begin{figure}[p]% +\vbox to\textheight{\vss\hsize=\textwidth +\makebox[\hsize][r]{\makebox[\FigSpace][l]{\box\DFimageII}% +% Rotated caption in the right page +\makebox(0,0)[lb]{\hspace*{1em}\raisebox{0.5\textheight}{% +\rotatebox[origin=tc]{90}{\DFcaption[#2]{#3}[#4]% +% +}}}}\vss}% +\end{figure}\clearpage} + +% \end{macrocode} +%^^A======================================== +%\subsection{The specific \cs{NFfigure} macro for normal full +% page figures} +%^^A======================================== +% This code is without surprises, except that it receives from the +% |DFimage| steering macro five arguments, the last (optional) one +% being delimited by round parentheses; by default, it contains the +% value 0.8, but the user can pass to the steering macro a different +% value in order to reduce the actual image size so as to leave +% enough space beneath it for the caption; the user, in facts, does +% not know in advance how many lines would occupy a structured +% complex caption. +% \begin{macrocode} +\NewDocumentCommand\NFfigure{m O{#3} m o d()}{% + \begin{figure}[p] + \includegraphics[width=\linewidth,height=#5\textheight, + keepaspectratio]{#1}% + \caption[#2]{#3}% + \IfValueT{#4}{\label{#4}}\relax + \end{figure} +} + +% \end{macrocode} +%^^A======================================== +% \subsection{The specific \cs{RFfigure} macro for rotated figures} +%^^A======================================== +% There are no new comments to make about this almost standard +% way of displaying a large figure, except, perhaps, the fact +% the instead of invoking the |lscape| package, the whole figure +% is rotated by means of rotating the very box that was used +% to contain the scaled image; the steering macro does not pass +% any \meta{height correction} argument to this macro, because +% it automatically scales the box containing the image and +% the caption so as to fill up the height or the width of the +% text block. +% \begin{macrocode} +%\NewDocumentCommand\RFfigure{m o m o}{% +\NewDocumentCommand\RFfigure{m O{#3} m o}{% + \dimen8=\textwidth\dimen10=\textheight + \figure[p]\setbox\RFbox=\hbox{% + \rotatebox[origin=cc]{90}{\parbox[b][\dimen8][c]{\dimen10}% + {\centering\includegraphics[width=\dimen10, height=\dimen8, + keepaspectratio]{#1}% + \caption[#2]{#3}% + \IfValueT{#4}{\label{#4}}\relax% + }}}% + \edef\RFx{\fpeval{\ht\RFbox/\textheight}}% + \edef\RFy{\fpeval{\wd\RFbox/\textwidth}}% + \fptest{\RFx > \RFy}% + {\scalebox{\RFx}{\box\RFbox}}% + {\scalebox{\RFy}{\box\RFbox}}% + \endfigure} + +% \end{macrocode} +%^^A======================================== +% \subsection{The specific \cs{VSfigure} macro for tall and slim figures} +%^^A======================================== +% This is the most troublesome macro, because it needs to depend +% on the |wrapfig| package, in order to set the image with its +% caption on the external side of the text block, with the text flowing +% around it. Package |wrapfig| has several limitations concerning +% the text that flows around the image. Nevertheless with a “normal” +% textual contents of the text block the result may be very good. +% +% The user should help a little bit the correct performance of +% this macro; for this reason, besides the \meta{height correction} +% factor, the steering macro may pass to it also the \meta{line +% correction} in order to correct the amount of lines the surrounding +% text should be indented; by playing with both corrections +% good results may be obtained. +% +% Notice that only with this macro a test on the initial image +% aspect ratio is performed; should this image have an aspect ratio +% smaller than~2, the process is aborted and a message is printed +% in the output document that informs the user and recommends to +% use another \meta{display mode} acronym. +% +% \begin{macrocode} +\NewDocumentCommand\VSfigure{m O{#3} m o d() D<>{0}}{% + \setbox\DFtotalimage=\hbox{\includegraphics{#1}} + \DFwidth=\wd\DFtotalimage \DFheight=\ht\DFtotalimage + \edef\VS@aspectratio{\fpeval{\DFheight/\DFwidth}} + \fptest{ \VS@aspectratio < 2 }% + {\begin{center}\ttfamily + ===========================================\\ + Figure #2 is not tall enough.\\ + Consider using a display mode different\\ + from VS; may be NF or RF are better suited.\\ + ===========================================\\ + Nothing done!\\ + =========================================== + \end{center} + }% + {\edef\VS@factor{\fpeval{#5\textheight/\DFheight}}% + \setbox\DFtotalimage= + \hbox{\scalebox{\VS@factor}{\box\DFtotalimage}}% + \edef\VS@width{\fpeval{\VS@factor*\DFwidth}\p@}% + \setbox\DFtotalimage=\vbox{\hsize=\VS@width% + \def\@captype{figure}\box\DFtotalimage + \caption[#2]{#3}% + \IfValueT{#4}{\label{#4}}\relax} + \VS@lines= + \fpeval{round(\ht\DFtotalimage/\baselineskip,0)+#6}% + \begin{wrapfigure}[\VS@lines]{O}[0pt]{\VS@width}% + \box\DFtotalimage + \end{wrapfigure}}% +} + +% \end{macrocode} +% +%^^A===================================== +% \subsection{The specific \cs{HSfigure} macro for spread wide slim +% figures} +%^^A===================================== +% +% The beginning of the macro is not so different from that used +% for the |SWfigure| macro. But this time there is no alternative +% to scale the image taking into account only its width and the +% spread width. The new little problem, now, is to match the total +% height of the two halves of the original wide and slim image, +% so that the texts of the two facing pages have their respective +% first lines perfectly aligned. +% +% Since the right half of the figure contains also the caption +% it is necessary to box again the left page box so as to have +% the same hight and depth as the right page one. +% \begin{macrocode} +\NewDocumentCommand\HSfigure{m o m o d()}{% + \unless\ifvmode + \csuse{@bsphack}% + \vadjust{\vspace{0pt plus1fill}\csuse{@esphack}\newpage}% + \fi + \cleartoevenpage + \setbox\DFtotalimage=\hbox{\includegraphics{#1}} + \DFwidth=\wd\DFtotalimage \DFhalfwidth=0.5\DFwidth + \FigSpace=0.5\spreadwidth% W +% + \setbox\DFimageI\hbox{\bgroup + \edef\x{\egroup\noexpand\includegraphics*[% + trim = 0 0 \the\DFhalfwidth\space 0]}\x{#1}}% +% + \setbox\DFimageII\hbox{\bgroup + \edef\x{\egroup\noexpand\includegraphics*[% + trim = \the\DFhalfwidth\space 0 0 0]}\x{#1}}% +% + \edef\DFscalefactor{\fpeval{\FigSpace/\DFhalfwidth}}% +% + \setbox\DFimageI=\hbox{% + \scalebox{\DFscalefactor}{\usebox{\DFimageI}}}% + \setbox\DFimageII=\hbox{% + \scalebox{\DFscalefactor}{\usebox{\DFimageII}}}% + \setbox\DFimageII= + \hbox{\dimen10=\linewidth\dimen8\internalmargin + \vbox{\hsize\DFhalfwidth\parindent\z@ + \box\DFimageII\par + \leavevmode\hspace*{\dimen8}% + \vtop{\hsize\dimen10\parindent\z@ + \textwidth=\hsize + \DFcaption[#2]{#3}[#4]% + }% + }% + }% + \setbox\DFimageI=\vbox to\ht\DFimageII{\box\DFimageI\vss}% +% + \begin{figure}[t] + \makebox[\textwidth][l]{% + \makebox[\DFhalfwidth][l]{\box\DFimageI}}% + \end{figure} + \afterpage{% + \begin{figure}[t] + \makebox[\textwidth][r]{% + \makebox[\DFhalfwidth][r]{\box\DFimageII}}% + \end{figure}% + } +} +% \end{macrocode} +%\begin{center}\setfontsize{15mm} +%\color{red} HAPPY \LaTeX-ING +%\end{center} +%\endinput +%\iffalse +%</package> +%\fi +%\iffalse +%<*readme> +%\fi +% \begin{macrocode} +This bundle contains file the swfigure.dtx and README.txt files. +This file README.txt contains the licence, the status, and some +general information. Save both in a .../source/latex/swfigure +folder either in the main TeX system tree or in your personal +tree. + +This swfigure.dtx file is a self extracting documented one. +Run pdfLaTeX at least twice on this file in order to get all +references correct, and you obtain the swfigure.pdf and the +swfigure.sty files. After extraction move the .sty file to +the .../tex/latex/swfigure folder, and move the .pdf file to +the .../doc/latex/swfigure folder. From the original folder +.../source/latex/swfigure move all files, except the .dtx and +the .txt files, to the bin. + +The author disclaims any liability from every possible inconvenience +deriving from the use of this software; you use it at your own risk. + +% \end{macrocode} +%\iffalse +%</readme> +%\fi
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/swfigure/swfigure.sty b/Master/texmf-dist/tex/latex/swfigure/swfigure.sty new file mode 100644 index 00000000000..67ace027b68 --- /dev/null +++ b/Master/texmf-dist/tex/latex/swfigure/swfigure.sty @@ -0,0 +1,234 @@ +%% +%% This is file `swfigure.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% swfigure.dtx (with options: `package') +%% +%% Copyright (C) 2020 Claudio Beccari all rights reserved. +%% License information appended +%% +\NeedsTeXFormat{LaTeX2e}[2020/01/01] +\ProvidesPackage{swfigure}% + [2020-10-11 v.0.9.07 Managing large and spread wide figures] +\RequirePackage{etoolbox} +\RequirePackage{xparse} +\RequirePackage{xfp} + +\ExplSyntaxOn +\AtBeginDocument{% +\ProvideExpandableDocumentCommand\fptest{m m m}{% + \fp_compare:nTF{#1}{#2}{#3}} +} +\ExplSyntaxOff + +\RequirePackage{trace} + +\RequirePackage{graphicx} +\RequirePackage{afterpage} +\RequirePackage{wrapfig} + +\newdimen\internalmargin +\internalmargin=\dimexpr\oddsidemargin+1in+1bp\relax +\newdimen\spreadwidth +\spreadwidth=\dimexpr 2\textwidth+2\internalmargin\relax +\newdimen\DFwidth +\newdimen\DFheight +\newdimen\DFhalfwidth +\newdimen\DFheight +\newdimen\FigSpace +\newsavebox\DFtotalimage +\newsavebox\DFimageI +\newsavebox\DFimageII +\newsavebox\RFbox +\newdimen\VS@textwidth +\newcount\VS@lines + +\NewDocumentCommand\DFcaption{O{#2} m o}{\refstepcounter{figure}% + \vtop to 0pt{\hsize=\textheight\parindent=0pt\leavevmode + Figure \thefigure\quad #2\vss}% + \addcontentsline{lof}{figure}{\protect\numberline{\thefigure}#1} + \IfValueT{#3}{\label{#3}}\relax% +} + +\DeclareRobustCommand\cleartoevenpage{% + \clearpage\ifodd\value{page}\null\clearpage\fi} +\NewDocumentEnvironment{DFimage}{O{SW} m O{#4} m o D(){0.8} D<>{0}}{% +\ifstrequal{#1}{SW}% + {% + \SWfigure{#2}[#3]{#4}[#5]% + }% + {\ifstrequal{#1}{NF}% + {% + \NFfigure{#2}[#3]{#4}[#5](#6)% + }% + {\ifstrequal{#1}{RF}% OK + {% + \RFfigure{#2}[#3]{#4}[#5]% + }% + {\ifstrequal{#1}{VS}% + {% + \VSfigure{#2}[#3]{#4}[#5](#6)<#7>% + }% + {\ifstrequal{#1}{HS} + {% + \HSfigure{#2}[#3]{#4}[#5](#6)% + }% + {\PackageWarning{swfigure}% + {% + **************************************\MessageBreak + Option #1\space is not valid \MessageBreak + Nothing done \MessageBreak + Image #2\space was not processed \MessageBreak + **************************************\MessageBreak}% + }% + }% + }% + }% + }% +}% + +\NewDocumentCommand\SWfigure{m O{#3} m o}{% +\unless\ifvmode + \csuse{@bsphack}% + \vadjust{\vspace{0pt plus1fill}\csuse{@esphack}\newpage}% +\fi +\cleartoevenpage +\setbox\DFtotalimage=\hbox{\includegraphics{#1}}% +\DFwidth=\wd\DFtotalimage \DFhalfwidth=0.5\DFwidth +\DFheight=\ht\DFtotalimage +\FigSpace=\dimexpr\textwidth+\internalmargin\relax +\setbox\DFimageI\hbox{\bgroup +\edef\x{\egroup\noexpand\includegraphics*[% +trim = 0 0 \the\DFhalfwidth\space 0]}\x{#1}}% +\setbox\DFimageII\hbox{\bgroup +\edef\x{\egroup\noexpand\includegraphics*[% +trim = \the\DFhalfwidth\space 0 0 0]}\x{#1}}% +\fptest{\DFheight/\DFhalfwidth > \textheight/\FigSpace}% + {\edef\DFscalefactor{\fpeval{\textheight/\DFheight}}}% + {\edef\DFscalefactor{\fpeval{\FigSpace/\DFhalfwidth}}}% +\setbox\DFimageI=\hbox{\scalebox{\DFscalefactor}{\usebox{\DFimageI}}}% +\setbox\DFimageII=\hbox{\scalebox{\DFscalefactor}{\usebox{\DFimageII}}}% +\begin{figure}[p]% +\vbox to\textheight{\vss\hsize=\textwidth%\ +\makebox[\hsize][l]{\makebox[\FigSpace][r]{\box\DFimageI}}\vss}% +\end{figure}\clearpage +\begin{figure}[p]% +\vbox to\textheight{\vss\hsize=\textwidth +\makebox[\hsize][r]{\makebox[\FigSpace][l]{\box\DFimageII}% +\makebox(0,0)[lb]{\hspace*{1em}\raisebox{0.5\textheight}{% +\rotatebox[origin=tc]{90}{\DFcaption[#2]{#3}[#4]% +}}}}\vss}% +\end{figure}\clearpage} + +\NewDocumentCommand\NFfigure{m O{#3} m o d()}{% + \begin{figure}[p] + \includegraphics[width=\linewidth,height=#5\textheight, + keepaspectratio]{#1}% + \caption[#2]{#3}% + \IfValueT{#4}{\label{#4}}\relax + \end{figure} +} + +\NewDocumentCommand\RFfigure{m O{#3} m o}{% + \dimen8=\textwidth\dimen10=\textheight + \figure[p]\setbox\RFbox=\hbox{% + \rotatebox[origin=cc]{90}{\parbox[b][\dimen8][c]{\dimen10}% + {\centering\includegraphics[width=\dimen10, height=\dimen8, + keepaspectratio]{#1}% + \caption[#2]{#3}% + \IfValueT{#4}{\label{#4}}\relax% + }}}% + \edef\RFx{\fpeval{\ht\RFbox/\textheight}}% + \edef\RFy{\fpeval{\wd\RFbox/\textwidth}}% + \fptest{\RFx > \RFy}% + {\scalebox{\RFx}{\box\RFbox}}% + {\scalebox{\RFy}{\box\RFbox}}% + \endfigure} + +\NewDocumentCommand\VSfigure{m O{#3} m o d() D<>{0}}{% + \setbox\DFtotalimage=\hbox{\includegraphics{#1}} + \DFwidth=\wd\DFtotalimage \DFheight=\ht\DFtotalimage + \edef\VS@aspectratio{\fpeval{\DFheight/\DFwidth}} + \fptest{ \VS@aspectratio < 2 }% + {\begin{center}\ttfamily + ===========================================\\ + Figure #2 is not tall enough.\\ + Consider using a display mode different\\ + from VS; may be NF or RF are better suited.\\ + ===========================================\\ + Nothing done!\\ + =========================================== + \end{center} + }% + {\edef\VS@factor{\fpeval{#5\textheight/\DFheight}}% + \setbox\DFtotalimage= + \hbox{\scalebox{\VS@factor}{\box\DFtotalimage}}% + \edef\VS@width{\fpeval{\VS@factor*\DFwidth}\p@}% + \setbox\DFtotalimage=\vbox{\hsize=\VS@width% + \def\@captype{figure}\box\DFtotalimage + \caption[#2]{#3}% + \IfValueT{#4}{\label{#4}}\relax} + \VS@lines= + \fpeval{round(\ht\DFtotalimage/\baselineskip,0)+#6}% + \begin{wrapfigure}[\VS@lines]{O}[0pt]{\VS@width}% + \box\DFtotalimage + \end{wrapfigure}}% +} + +\NewDocumentCommand\HSfigure{m o m o d()}{% + \unless\ifvmode + \csuse{@bsphack}% + \vadjust{\vspace{0pt plus1fill}\csuse{@esphack}\newpage}% + \fi + \cleartoevenpage + \setbox\DFtotalimage=\hbox{\includegraphics{#1}} + \DFwidth=\wd\DFtotalimage \DFhalfwidth=0.5\DFwidth + \FigSpace=0.5\spreadwidth% W + \setbox\DFimageI\hbox{\bgroup + \edef\x{\egroup\noexpand\includegraphics*[% + trim = 0 0 \the\DFhalfwidth\space 0]}\x{#1}}% + \setbox\DFimageII\hbox{\bgroup + \edef\x{\egroup\noexpand\includegraphics*[% + trim = \the\DFhalfwidth\space 0 0 0]}\x{#1}}% + \edef\DFscalefactor{\fpeval{\FigSpace/\DFhalfwidth}}% + \setbox\DFimageI=\hbox{% + \scalebox{\DFscalefactor}{\usebox{\DFimageI}}}% + \setbox\DFimageII=\hbox{% + \scalebox{\DFscalefactor}{\usebox{\DFimageII}}}% + \setbox\DFimageII= + \hbox{\dimen10=\linewidth\dimen8\internalmargin + \vbox{\hsize\DFhalfwidth\parindent\z@ + \box\DFimageII\par + \leavevmode\hspace*{\dimen8}% + \vtop{\hsize\dimen10\parindent\z@ + \textwidth=\hsize + \DFcaption[#2]{#3}[#4]% + }% + }% + }% + \setbox\DFimageI=\vbox to\ht\DFimageII{\box\DFimageI\vss}% + \begin{figure}[t] + \makebox[\textwidth][l]{% + \makebox[\DFhalfwidth][l]{\box\DFimageI}}% + \end{figure} + \afterpage{% + \begin{figure}[t] + \makebox[\textwidth][r]{% + \makebox[\DFhalfwidth][r]{\box\DFimageII}}% + \end{figure}% + } +} +%% +%% Distributable under the LaTeX Project Public License, +%% version 1.3c or higher (your choice). The latest version of +%% this license is at: http://www.latex-project.org/lppl.txt +%% +%% This work is "maintained" +%% +%% This work consists of files swfigure.dtx and READEME.txt, and the derived +%% files swfigure.sty and swfigure.pdf +%% +%% +%% End of file `swfigure.sty'. |