diff options
author | Karl Berry <karl@freefriends.org> | 2023-02-27 20:39:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-02-27 20:39:17 +0000 |
commit | 9002b7b624bc2dbdd6fcc504ac3d8323df344699 (patch) | |
tree | 6e35cf1db319f97a94bdf730da3b115e7e65d6df /Master/texmf-dist/source/latex | |
parent | 5f8e673c9224ab40043bd2ea9c93103a85d8110a (diff) |
spacingtricks (27feb23) (branch)
git-svn-id: svn://tug.org/texlive/branches/branch2022.final@66231 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/spacingtricks/spacingtricks.dtx | 595 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/spacingtricks/spacingtricks.ins | 6 |
2 files changed, 426 insertions, 175 deletions
diff --git a/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.dtx b/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.dtx index d9ff9bc46d0..68a4afbdd91 100644 --- a/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.dtx +++ b/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2019-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr> +% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> % % This file may be distributed and/or modified under the conditions of % the LaTeX Project Public License, either version 1.3 of this license @@ -20,26 +20,30 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2005/12/01] \ProvidesPackage{spacingtricks} - [2021/09/20 v1.4 .dtx spacingtricks file] + [2023/02/27 v1.5 .dtx spacingtricks file] %</package> %<*driver> \documentclass{ltxdoc} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} -\usepackage[french,english]{babel} -\usepackage{lmodern} -\usepackage{spacingtricks} -\usepackage{pifont} +\usepackage[english]{babel} +\usepackage{mathptmx} +\usepackage[pifont]{spacingtricks} \usepackage{amsmath} -\usepackage{pstricks-add} +\usepackage{tikz} +\usepackage{sectsty} +\usepackage{xcolor} + +\definecolor{darkbrown}{rgb}{0.5,0.1,0.1} +\allsectionsfont{\color{darkbrown}} \DisableCrossrefs %\CodelineIndex %\RecordChanges \usepackage{hyperref} \hypersetup{% colorlinks, - linkcolor=blue, - citecolor=blue, + linkcolor=blue, %red by default + citecolor=red, %green by default pdftitle={spacingtricks}, pdfsubject={LaTeX package}, pdfauthor={Antoine Missier} @@ -54,7 +58,7 @@ %</driver> % \fi % -% \CheckSum{165} +% \CheckSum{242} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z @@ -74,59 +78,91 @@ % % % \changes{v0.1}{2011/12/27}{Initial version} -% \changes{v1.0}{2019/05/04}{dtx and ins files, added the footnote command} +% \changes{v1.0}{2019/05/04}{dtx and ins files, adding the footnote command} % \changes{v1.0}{2019/06/16}{English translation of the documentation} -% \changes{v1.1}{2019/09/06}{No automatic line breaking at the end of the centered command, -% new length compactitemlist} -% \changes{v1.2}{2019/09/09}{A bug correction in the last update} -% \changes{v1.3}{2020/11/02}{Loading the setspace package, -% small changes in compactlist environment, improvement in dualboxes macro} -% \changes{v1.4}{2021/09/21}{A mistake in the documentation is now corrected} +% +% \changes{v1.1}{2019/09/06}{ +% - No automatic line breaking at the end of the centered command, +% - new length compactitemlist} +% +% \changes{v1.2}{2019/09/09}{ +% - A bug correction in the last update} +% +% \changes{v1.3}{2020/11/02}{ +% - Loading the setspace package, +% - small changes in compactlist environment, +% - improvement in dualboxes macro} +% +% \changes{v1.4}{2021/09/21}{ +% - A mistake in the documentation is now corrected} +% +% \changes{v1.5}{2023/02/23}{ +% - Changing font to times (with the mathptmx package), +% - changing pstricks figure to tikz to avoid double compilation, +% - tests and comments about wrapfig and picinpar packages} +% \changes{v1.5}{2023/02/25}{ +% - adding the centeredline package, +% - adding the pifont package as option, +% - taking over the juxtapose environment from Christian Obrecht, +% - topsep of indentblock environment reduced to zero} +% \changes{v1.5}{2023/02/26}{ +% - Tests and comments about paracol and reledpar packages} % % \GetFileInfo{spacingtricks.sty} % -% \title{The \texttt{spacingtricks} package\thanks{This document +% \title{The \textsf{spacingtricks} package\thanks{This document % corresponds to \textsf{spacingtricks}~\fileversion, dated \filedate.}} % \author{Antoine Missier \\ \texttt{antoine.missier@ac-toulouse.fr}} -% \date{September 20, 2021} +% \date{February 27, 2023} % \maketitle % % \section{Introduction} % % This package offers some macros to deal with spacing issues. Thus: % \begin{compactlist} -% \item "\centered" yields good horizontal centering without vertical spacing; -% \item "\footnote" has been redefined to avoid unsuitable spacing; -% \item "\vstrut" produces a strut with variable height or depth; -% \item "\indent" has been redefined to indent a line at the beginning +% \item \hyperlink{centered}{\texttt{\bslash centered}} yields good horizontal +% centering without vertical spacing; +% \item \hyperlink{footnote}{\texttt{\bslash footnote}} has been redefined +% to avoid unsuitable spacing; +% \item \hyperlink{vstrut}{\texttt{\bslash vstrut}} produces a strut +% with variable height or depth; +% \item \hyperlink{indent}{\texttt{\bslash indent}} has been redefined +% to indent a line at the beginning % of a particular paragraph even if "\parindent" has been set to 0; -% \item the "indentblock" environment produces indentation of all its content; -% \item the "compactlist" environment yields a compact list, without vertical spacing -% between the items, like here; -% several aliases are provided to type some list symbols shorter: +% \item the \hyperlink{indentblock}{\texttt{indentblock}} environment +% produces indentation of all its content; +% \item the \hyperlink{compactlist}{\texttt{compactlist}} environment +% yields a compact list, without vertical spacing between the items, like here; +% several \hyperlink{aliases}{aliases} are provided to type some list symbols shorter: % "\bul", "\dash", "\ddash", "\aster", "\hand", "\checksymb", "\arrowsymb"; -% \item the macros "\ie" and "\eg" attends to typeset common abbreviations -% \ie and \eg with correct spacing; -% \item the "\dualboxes" command attends to place two boxes -% (figures, tables, text) side by side by adjusting the vertical positioning. +% \item common abbreviations \hyperlink{ie-eg}{\ie and \eg} +% are typeset by the macros "\ie" and "\eg" with correct spacing; +% \item the \hyperlink{dualboxes}{\texttt{\bslash dualboxes}} command attends to place +% two boxes (figures, tables, text) side by side by adjusting the vertical positioning. % \end{compactlist} % % \medskip -% Two other common packages are loaded by \textsf{spacingtricks}: -% \textsf{setspace} (natively in \LaTeXe), -% for setting line spacing in a piece of text -% (with the \texttt{spacing} environment), and +% Three other ``spacing'' packages are loaded by \textsf{spacingtricks}: +% \hyperlink{setspace}{\textsf{setspace}}~\cite{SETSP} (natively in \LaTeXe), +% for setting line spacing in a piece of text, % \textsf{xspace}~\cite{XSP}, which adds an inter-word space unless the macro -% is followed by a punctuation character. -% -% Otherwise, we provide the package \textsf{arraycols}~\cite{ARCOL}, -% which allows a good management of spacing in \texttt{tabular} -% and \texttt{array} environments, -% and \textsf{mismath}~\cite{MSMATH} of which several macros tends to improve spacing +% is followed by a punctuation character, +% and \hyperlink{centeredline}{\textsf{centeredline}}~\cite{CENTER} +% which gives an interesting alternative +% to our "\centered" macro (see further). +% We also took over the fine \hyperlink{juxtapose}{\texttt{juxtapose}} environment +% from the \textsf{mafr}~\cite{MAFR} +% distribution, as another way to place boxes side by side. +% +% Otherwise, we have develop the package \textsf{arraycols}~\cite{ARCOL}, +% that allows a good management of spacing in \texttt{tabular} +% or \texttt{array} environments, +% and \textsf{mismath}~\cite{MSMATH} that provides several macros to improve spacing % in mathematical formulas. % % \section{Usage} % +% \hypertarget{centered}{} % \DescribeMacro{\centered} % The "\centered"\marg{text} command yields a centered line without vertical spacing. % It acts like "\centerline" except in lists or tables where its behavior is much better @@ -145,27 +181,65 @@ % \begin{center} Lorem ipsum dolor sit amet, consectetuer adipiscing elit. \end{center} % \end{enumerate} % -% In tables, "\centered" allows to center a particular cell independently of -% the (general) column alignment +% After "\centered{...}", the end of line must be explicit, +% otherwise "\centered" will not work. You can use "\\", +% which is equivalent to "\linebreak", or +% a blank line to begin a new paragraph (equivalent to "\par"). +% In the former case, no vertical space +% is added after the centered line, in the latter case, the vertical space +% following the centered line is a bit larger. +% In the example above, the centered line comes to the end, without line breaking, +% because of the next "\item" command, and the vertical space is set by the +% \texttt{enumerate} environment. +% +% \medskip +% In tables, "\centered" allows to center a particular line in a cell independently of +% the column alignment % \footnote{In tables, we can also use the powerful \texttt{\bslash makecell} command -% of the \textsf{makecell} package~\cite{MKCELL}, on the other hand -% the \texttt{\bslash centerline} command doesn't work for a single line in a cell. -% Let us also mention the \texttt{\bslash centeredline} command, from the package -% \textsf{centeredline}~\cite{CENTER}, which allows to use \texttt{\bslash verb} -% commands inside the text to center; but it doesn't work in tables either.}. +% of the \textsf{makecell} package~\cite{MKCELL}; on the other hand, +% neither \texttt{\bslash centerline} nor \texttt{\bslash centering} commands +% do work for a single line in a cell.}, +% here with "\begin{tabular}{|l|r|}": % % \begin{center} % \begin{tabular}{|l|r|} % \hline % left aligned column & right aligned column \\ % \hline -% another cell & \centered{centered cell} \\ +% the second cell fixes the width & \centered{centered cell} \\ % \hline -% \centered{centered line} & the last cell right aligned \\ +% \centered{centered cell} & the last cell fixes the width \\ % \hline % \end{tabular} % \end{center} % +% \medskip +% \hypertarget{centeredline}{} +% \DescribeMacro{\centeredline} +% A limitation of our "\centered" macro is that it doesn't allow to use \texttt{\bslash verb} +% commands inside its argument. For this purpose, you get +% the "\centeredline" command, from the package +% \textsf{centeredline} by Jean-François Burnol~\cite{CENTER}. +% This small package is now loaded by \textsf{spacingtricks}. +% Another advantage of "\centeredline" is that it does not require an explicit +% end, the text can follow the command on the same line, and the line break will +% be automatic. +% Nevertheless, it doesn't work in tables (like in the example above), +% except with \texttt{p} column declaration. +% +% \hypertarget{setspace}{} +% \medskip +% \DescribeEnv{onehalfspace}\DescribeEnv{doublespace}\DescribeEnv{spacing} +% \begin{onehalfspace} +% The \textsf{setspace} package~\cite{SETSP}, loaded by \textsf{spacingtricks}, provides +% environments for changing the spacing between lines. The present paragraph is nested +% in a \texttt{onhalfspace} environment as you can see. +% The \texttt{spacing} environment can be used to get other interline spacing, \eg +% "\begin{spacing}{2.5}". +% \end{onehalfspace} +% +% \hypertarget{footnote}{} +% \medskip % \DescribeMacro{\footnote} % The "\footnote" command doesn't have a good management of spacing issues, % in particular when the \textsf{hyperref} package has been loaded. @@ -189,31 +263,31 @@ % at the end of line; its effect is to cancel the space produced by a line break, % but we do not always think of using it.}. % -% \pagebreak % \medskip % \noindent\begin{minipage}{5.6cm} % \begin{verbatim} -%This a note +%This is a note %\footnote{ -%Bad spacing example.} -%with the old command. +%The old command.} +%with bad spacing. % \end{verbatim} % \vspace{-4ex} This a note % \footnt{ -% Bad spacing example.} -% with the old command. +% The old command.} +% with bad spacing. % \end{minipage} % \hfill % \begin{minipage}{5.6cm} % \begin{verbatim} -%This a note +%This is a note %\footnote{ -%Good spacing example.} -%with the new command. +%The new command.} +%with good spacing. % \end{verbatim} % \vspace{-4ex} This a note -% \footnote{ Good spacing example.} -% with the new command. +% \footnote{ +% The new command.} +% with good spacing. % \end{minipage} % % \medskip @@ -225,7 +299,7 @@ % but two new macros have been added to manage spacing: % "\footnotespace" produces the space before the note call symbol % and "\footnoteindent" produces the space at the beginning of the footnote text. -% For instance, with "\renewcommand{\footnotespace}{\,}" +% For instance, with "\renewcommand{\footnotespace}{\,}" \\ % and "\renewcommand{\footnoteindent}{\enskip}" % \footnote{\texttt{\bslash enskip} is equivalent to \texttt{\bslash hspace\{0.5em\}}.} % we get: @@ -241,6 +315,7 @@ % \renewcommand{\footnotespace}{} % \renewcommand{\footnoteindent}{} % +% \hypertarget{vstrut}{} % \DescribeMacro{\vstrut} % "\vstrut"\oarg{depth}\marg{height} produces a strut with variable height or depth, % in order to increase the line's height (above the base line) or depth @@ -264,7 +339,7 @@ % \\ % "\fbox{\vstrut{2ex}$\sigma(X)=1$}" gives % \fbox{\vstrut{2ex}$\sigma(X)=1$} -% better than \fbox{$\sigma(X)=1$} +% better than \fbox{$\sigma(X)=1$}. % % \medskip % \noindent @@ -312,16 +387,19 @@ % % In a text line, "\vstrut" can be used in place of "\vspace". % +% \hypertarget{indent}{} % \medskip -% \DescribeMacro{\indent} \DescribeMacro{\parindentlength} +% \DescribeMacro{\indent} % The command "\setlength{\parindent}{0cm}" allow to eliminate any indentation of lines % at the beginning of every paragraph. % But in this case, the "\indent" command does not work anymore % if we want exceptional indentation of a particular paragraph. % So, the initial length of "\parindent" has been saved in "\parindentlength" +% \DescribeMacro{\parindentlength} % and the command "\indent" has been redefined to still allow indentation % of length "\parindentlength". % +% \hypertarget{indentblock}{} % \medskip % \DescribeEnv{indentblock} % The \texttt{indentblock} environment allows indentation of a whole block of lines. @@ -331,6 +409,7 @@ % "\begin{indentblock}\itshape" and stanzas 2 and 4 have been affected by % an additional indentation with "\begin{indentblock}[3em]". % +% \smallskip % \begin{indentblock}\itshape % Overhead the albatross hangs motionless upon the air \\ % And deep beneath the rolling waves in labyrinths of coral caves \\ @@ -357,41 +436,64 @@ % \end{indentblock} % \end{indentblock} % +% \hypertarget{compactlist}{} % \DescribeEnv{compactlist} % As its name tells it, the "compactlist" environment allows to create -% a \og compact\fg\ list, \ie without vertical space neither above nor between items. +% a ``compact'' list, \ie without vertical space neither above nor between items. % As for lists in \LaTeX, items are generated by the "\item" command. % The environment has an optional argument: "\begin{compactlist}"\oarg{symbol}. % +% \hypertarget{aliases}{} +% \medskip % \DescribeMacro{\bul}\DescribeMacro{\dash}\DescribeMacro{\ddash}\DescribeMacro{\aster} -% \DescribeMacro{\hand} -% Default item symbol is "\textbullet" but it can be changed. +% The default item symbol is "\textbullet", but can be changed. % We provide aliases for several symbols commonly used in lists: -% "\bul" \bul\ (alias for "\textbullet"), "\dash" \dash\ ("\textendash"), -% "\ddash" \ddash\ ("\textemdash"), "\aster" \aster\ ("\textasteriskcentered"), -% as well as "\hand" \hand ("\ding{43}"), "\checksymb" \checksymb ("\ding{51}") -% and "\arrowsymb" \arrowsymb ("\ding{226}") -% which need to load the \textsf{pifont} package in the preamble. -% \DescribeMacro{\checksymb}\DescribeMacro{\arrowsymb} -% The following example is obtained with "\begin{compactlist}[\checksymb]": +% "\bul" \bul\ (alias for "\textbullet"), "\dash" \dash\ (alias for "\textendash"), +% "\ddash" \ddash\ (alias for "\textemdash"), +% "\aster" \aster\ ("alias for \textasteriskcentered"). +% +% \smallskip +% \DescribeEnv{[pifont]} +% \DescribeMacro{\hand}\DescribeMacro{\checksymb}\DescribeMacro{\arrowsymb} +% Some other common symbols can be found in the \textsf{pifont} package~\cite{PIFONT}. +% Therefore \textsf{spacingtricks} has a \texttt{pifont} option, +% that loads this package and creates the appropriate aliases: +% "\hand" \hand for "\ding{43}", "\checksymb" \checksymb for "\ding{51}" +% and "\arrowsymb" \arrowsymb for "\ding{226}". +% +% \medskip \noindent +% The following example is produced by "\begin{compactlist}[\checksymb]": % \begin{compactlist}[\checksymb] % \item First item. % \item Second item. % \item Third item. % \end{compactlist} -% \hand These aliases can be used directly in text mode, of course. +% \hand These aliases can also be used directly in text mode, of course. % For "\hand", "\checksymb" and "\arrowsymb", the symbol is followed by a space % if there is no punctuation character just after it (thanks to the % macro \texttt{xspace} from the \textsf{xspace} package~\cite{XSP}). % -% \medskip +% \smallskip % \DescribeMacro{\compactlistindent} -% This length (fixed at 0.5\,em by default) can be modified with "\setlength" to increase -% or decrease the indentation of the \texttt{compactlist} environment. +% Indentation length is set by "\compactlistindent" (fixed at 0.5\,em by default) +% and can be modified with "\setlength". % Notice that there are several other ways to construct a compact list in particular % with the \texttt{noitemsep} key of the \textsf{enumitem} package~\cite{ENUM}. % % \medskip +% \DescribeEnv{dinglist} +% The \textsf{pifont} package has also a list environment "\begin{dinglist}"\marg{number} +% to typeset a list with normal spacing, using the "\ding"\marg{number} symbol +% for each "\item" (instead of using "\item[\ding"\marg{number}"]"). +% So "\begin{dinglist}{226}" yields: +% \begin{dinglist}{51} +% \item The first item in the list. +% \item The second item in the list. +% \item The third item in the list. +% \end{dinglist} +% +% \hypertarget{ie-eg}{} +% \medskip % \DescribeMacro{\ie} \DescribeMacro{\eg} % In English, at the end of a sentence, the point is followed by an em space % which is larger than an inter-word space. @@ -403,105 +505,197 @@ % on the other hand, some authors prefer to typeset \textit{\ie} in italic shape, % which is always possible with "\textit{\ie}". % +% \hypertarget{dualboxes}{} % \medskip % \DescribeMacro{\dualboxes} -% Several packages intend to set the text around a figure or a table, -% but in general we have to give the width of the box containing the figure or the table. -% Let us mention however the \textsf{picins} package~\cite{PICINS}, -% cited in The \LaTeX\ Companion~\cite{COMP}, which do not ask for the box width -% and it can also be used with lists. -% Nevertheless vertical positioning can be tricky. -% For this purpose, we have written the "\dualboxes"\oarg{pos}\marg{left}\marg{right} macro, +% Several packages intend to typeset text around a figure or a table, +% but some of them need to give the width of the box containing the figure or the table. +% We provide here another approach with the macro +% "\dualboxes"\oarg{pos}\marg{left}\marg{right}, % which places two boxes, \meta{left} and \meta{right}, side by side. -% These boxes can contain figures, tables, text, \texttt{minipage} environments +% These boxes can contain figures, tables, one small line text, +% parbox text, \texttt{minipage} environments % (for several paragraphs and lists), etc. % The optional \meta{pos} parameter sets the vertical level on which the boxes are aligned: % a number between 0 (bottom) and 1 (top, default value). -% Here is a first example with "\dualboxes[0.65]". +% +% Here is a first example in which we have adjusted the postion +% of the boxes vertically, with "\dualboxes[0.6]". +% +% \def\myfigure{% +% \begin{tikzpicture}[scale=0.6]\tiny +% \draw[->] (-4.5,0) -- (4.5,0); +% \draw[->] (0,-2) -- (0,1.5); +% \foreach \x in {-4,...,4} {\draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {$\x$};} +% \foreach \y in {-1,1} {\draw (0.1cm,\y) -- (-0.1cm,\y) node[left] {$\y$};} +% \draw[domain=-4.5:4.5,samples=100,color=red] plot ({\x},{2*\x/(exp(\x)-\x)}); +% \end{tikzpicture}} +% +% \def\mytable{ +% $\begin{array}{|*{6}{c|}} \hline +% x & -2 & -1 & 0 & 1 & 2 \\ \hline +% f(x) & -1,87 & -1,46 & 0 & 1,16 & 0,74 \\ \hline +% \end{array}$ +% } % % \medskip -% \psset{xunit=0.5cm,yunit=1.0cm,algebraic=true} -% \dualboxes[0.65]{\footnotesize -% $\begin{array}{|*{7}{c|}} \hline -% x & -2 & -1 & 0 & 1 & 2 & 3 \\ \hline -% f(x) & -0.96 & -0.71 & 0 & 0.59 & 0.38 & 0.18 \\ \hline -% \end{array}$ -% }{ -% \begin{pspicture}(-4.5,-1.5)(4.5,1) -% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt] -% {->}(0,0)(-4.5,-1.5)(4.5,1) -% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)} -% \end{pspicture} -% } +% \dualboxes[0.6]{\scriptsize \mytable}{\myfigure} % % \noindent -% The horizontal space is equally shared between left margin, inter-box space and right margin. +% The horizontal space is equally shared between left margin, inter-box space +% and right margin. % % \medskip -% In the following example the right box has been shifted back +% In the following example boxes are aligned by top and +% the right box has been shifted back (left) from 3\,cm % to make an overlapping with the left one, what \textsf{picins} cannot do. % -%\dualboxes{\footnotesize -% $\begin{array}{|*{7}{c|}} \hline -% x & -2 & -1 & 0 & 1 & 2 & 3 \\ \hline -% f(x) & -0.96 & -0.71 & 0 & 0.59 & 0.38 & 0.18 \\ \hline -% \end{array}$ -% }{\mbox{} \hspace{-3cm} -% \begin{pspicture}(-4.5,-1.5)(4.5,1) -% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt] -% {->}(0,0)(-4.5,-1.5)(4.5,1) -% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)} -% \end{pspicture} -%} +% \dualboxes{\scriptsize \mytable}{\mbox{} \hspace{-3cm} \myfigure} % \begin{verbatim} -% \dualboxes{\footnotesize -% $\begin{array}{|*{7}{c|}} \hline -% x & -2 & -1 & 0 & 1 & 2 & 3 \\ \hline -% f(x) & -0.96 & -0.71 & 0 & 0.59 & 0.38 & 0.18 \\ \hline -% \end{array}$ +% \dualboxes{\scriptsize +% $\begin{array}{|*{6}{c|}} \hline +% x & -2 & -1 & 0 & 1 & 2 \\ \hline +% f(x) & -1,87 & -1,46 & 0 & 1,16 & 0,74 \\ \hline +% \end{array}$ % }{\mbox{} \hspace{-3cm} -% \begin{pspicture}(-4.5,-1.5)(4.5,1) % needs the pstricks-add package -% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt] -% {->}(0,0)(-4.5,-1.5)(4.5,1) -% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)} -% \end{pspicture} +% \begin{tikzpicture}[scale=0.6]\tiny +% \draw[->] (-4.5,0) -- (4.5,0); +% \draw[->] (0,-2) -- (0,1.5); +% \foreach \x in {-4,...,4} { +% \draw (\x,0.1cm) -- (\x,-0.1cm) node[below] {$\x$};} +% \foreach \y in {-1,1} { +% \draw (0.1cm,\y) -- (-0.1cm,\y) node[left] {$\y$};} +% \draw[domain=-4.5:4.5,samples=100,color=red] +% plot ({\x},{2*\x/(exp(\x)-\x)}); +% \end{tikzpicture} % } % \end{verbatim} % % \DescribeMacro{\dualboxes*} -% This command has a starred version which eliminates spaces at the beginning and at the -% end of the line, the only remaining space is between the boxes: +% This command has a starred version that eliminates space before the first box +% and after the second one, but not between them: % "\dualboxes*"\oarg{pos}\marg{left}\marg{right}. -% \dualboxes*{\parbox{7cm}{ -% Here the left part consist of a paragraph box obtained with -% \texttt{\bslash parbox\{7cm\}\{...\}}. -% If we want several paragraphs, a list or a mathematical displayed formula, -% in one of the boxes, -% then we have to put them in a \texttt{minipage} environment. -% }}{\begin{pspicture}(-4.5,-1.5)(4.5,1) -% \psaxes[labelFontSize=\scriptstyle,ticksize=-2pt,linewidth=0.3pt] -% {->}(0,0)(-4.5,-1.5)(4.5,1) -% \psplot[linecolor=red]{-4.5}{4.5}{x/(EXP(x)-x)} -% \end{pspicture} -% } % -% \noindent -% Let us indicate that it's unfortunately not possible to use \texttt{verbatim} environments +% \smallskip +% \dualboxes*[0.6]{\parbox{6.5cm}{ +% In practice, \texttt{\bslash dualboxes} is suitable for boxes in which +% you put figures or tables or small one line text. +% For longer text, this one must be nested in a paragraph box, \eg +% here we used \texttt{\bslash parbox\{6.5cm\}\{...\}}. +% If you want several paragraphs, a list or a mathematical displayed formula, +% then you have to put them in a \texttt{minipage} environment.} +% }{\myfigure} +% +% \medskip +% Let us indicate that it is unfortunately not possible to use \texttt{verbatim} environments % (nor the in-line \texttt{\bslash verb} command) % within "\dualboxes" arguments, -% just as it's not possible for footnotes or margin notes. +% as well as it is not possible for footnotes or margin notes. +% +% \medskip +% For putting two figures side by side, or a table and a figure, "\dualboxes" is perfect. +% But for text around a figure, some other package may be more efficient. +% Les us mention first \textsf{wrapfig}~\cite{WRAPFIG}, one of the easiest, but text must +% contain in a single paragraph (like above), without list or you have to place it in +% a \texttt{minipage} environment. +% +% More sophisticated is the \textsf{picins} package~\cite{PICINS}, +% cited in The \LaTeX\ Companion~\cite{COMP}. +% Unlike most others, it can be used with lists, +% nevertheless vertical positioning can be tricky +% and it doesn't belong to common distributions \TeX{}\,Live or MiK\TeX. +% A last one we mention is \textsf{picinpar}~\cite{PICINPAR} in which +% text can begin after the first line and can flow to the two side of the figure. +% +% \hypertarget{juxtapose}{} +% \medskip +% \DescribeEnv{juxtapose} +% As a very interesting alternative, we present the powerful \texttt{juxtapose} environment, +% written by Christian Obrecht in the \texttt{fiche.cls class} file, +% which is part of the \textsf{mafr} distribution~\cite{MAFR}. +% We made small improvements, among others to work correctly with lists and +% get customization of some lengths: +% \DescribeMacro{\juxtopskip}\DescribeMacro{\juxbottomskip} +% \DescribeMacro{\juxsepspace} +% top and bottom lengths are set by default to "\smallskipamount" +% and separation space is set to 1.5\,em. +% For spacing above or below the environment, if the default length doesn't fit well, +% you can add a "\bigskip" or a "\vspace"\marg{dimen} for example, +% or at worst redefine the length "\juxtopskip" and "\juxbottomskip". +% \begin{juxtapose} +% In this example the environment begins here. +% \texttt{juxtapose} can deal with figures, tables, but also: +% \begin{compactlist} +% \item verbatim text: "\mytestmacro", +% \item text with several paragraphs, +% \item lists, like here (a compact list), +% \item displayed mathematics as shown on the right side, +% \end{compactlist} +% without the need of \texttt{multipage} environments. + +% The two boxes are aligned by their center, but +% unlike "\dualboxes", you cannot adjust vertical positioning. +% +% \otherside +% \myfigure +% \[ f(x) = \frac{2x}{\mathrm{e}^x-x} \] +% This is the last line of the environment. +% \end{juxtapose} +% +% Here begins the following text. The syntax of \texttt{juxtapose} is simple: +% \begin{center} +% "\begin{juxtapose} ... \otherside ... \end{juxtapose}" +% \end{center} +% It has an optional argument "\begin{juxtapose}"\oarg{leftratio} +% where \meta{leftratio} is the width ratio of the left side relatively to "\textwidth" +% (the default value is "0.5" which means "0.5\textwidth"). +% +% Paragraphs are indented inside each side, except the first one, +% because for a figure, there's no need to shift it to the right +% (from indent length) and otherwise the user may forgot to +% put "\noindent" before the figure. +% If you still want to indent the first paragraph use "\indent". +% For horizontal alignment inside one side, you can use "\centering" or "\flushright" +% (useful for a figure). +% If you want a global indentation of the first (or the second) box, you +% can put it in an \texttt{indentblock} environment, it works fine! +% +% \medskip +% One may ask why not using multi column environments instead. +% In the classic \textsf{multicol} environment you cannot choose unbalanced +% columns and you cannot choose where to pass to the other column. +% +% Some nice packages improve \textsf{multicols}, \eg \textsf{vwcol}~\cite{VWCOL} in which +% you can fix on the columns width, but unfortunately it doesn't accept +% verbatim text, and doesn't manage correctly lists and figures like above. +% +% Let us mention \textsf{paracol}~\cite{PARA} and \textsf{reledpar}~\cite{RELP}, +% which are intended to typeset two column of text in parallel, +% useful for translation or critical edition of text. +% They work fine with lists, figures, verbatim text, and also footnotes and margin notes, +% but it is not immediate to obtain just a chosen vertical positioning of two boxes. +% They have synchronization mechanisms, convenient for text, but +% not when you place two figures side by side. +% Besides they are a bit oversized for our need. They don't have the same purpose. +% So we can hope \texttt{juxtapose} or "\dualboxes" are useful. % % \StopEventually{} % % \section{Implementation} % \begin{macrocode} +\newif\ifspacingtricks@pifont +\DeclareOption{pifont}{\spacingtricks@pifonttrue} +\ProcessOptions \relax + \RequirePackage{ifthen} \RequirePackage{calc} \RequirePackage{setspace} \RequirePackage{xspace} +\RequirePackage{centeredline} +\ifspacingtricks@pifont \RequirePackage{pifont} \fi \newcommand*{\centered}[1]{{\setlength{\parskip}{0pt}\par\noindent\hfill - #1\hfill\mbox{}}} + #1\hfill\mbox{}}} % \end{macrocode} % The double braces are necessary here to ensure that the "\parskip" modification applies % locally within the command and not globally to the rest of the document. @@ -536,29 +730,29 @@ \newenvironment*{indentblock}[1][\parindentlength]{ \begin{list}{}{% - \setlength{\leftmargin}{#1} - \setlength{\itemsep}{0pt} - \setlength{\topsep}{1ex} - \setlength{\partopsep}{0pt} - } - \item[] - }{\end{list}} + \setlength{\leftmargin}{#1} + \setlength{\itemsep}{0pt} + \setlength{\topsep}{0pt} % previously 1ex + \setlength{\partopsep}{0pt} + } + \item[] +}{\end{list}} \newlength{\compactlistindent} \setlength{\compactlistindent}{0.5em} \newenvironment*{compactlist}[1][\textbullet]{ \par % sometimes necessary - \begin{list}{#1\unskip}{% \unskip suppresses the space created by \xspace - \setlength{\itemsep}{0pt} - \setlength{\parsep}{0pt} - \setlength{\topsep}{0ex} - \setlength{\partopsep}{0pt} - \setlength{\labelwidth}{1em} - \setlength{\leftmargin}{\labelwidth} - \addtolength{\leftmargin}{\labelsep} - \addtolength{\leftmargin}{\compactlistindent} - } - }{\end{list}} + \begin{list}{#1\unskip}{% \unskip gobbles space created by \xspace + \setlength{\itemsep}{0pt} + \setlength{\parsep}{0pt} + \setlength{\topsep}{0ex} + \setlength{\partopsep}{0pt} + \setlength{\labelwidth}{1em} + \setlength{\leftmargin}{\labelwidth} + \addtolength{\leftmargin}{\labelsep} + \addtolength{\leftmargin}{\compactlistindent} + } +}{\end{list}} \providecommand{\bul}{\textbullet} \providecommand{\dash}{\textendash} @@ -569,16 +763,18 @@ % The following macros need the \textsf{pifont} package. % \smallskip % \begin{macrocode} -\providecommand{\hand}{\ding{43}\xspace} -\providecommand{\checksymb}{\ding{51}\xspace} -\providecommand{\arrowsymb}{\ding{226}\xspace} +\ifspacingtricks@pifont + \providecommand{\hand}{\ding{43}\xspace} + \providecommand{\checksymb}{\ding{51}\xspace} + \providecommand{\arrowsymb}{\ding{226}\xspace} +\fi \providecommand{\ie}{i.e.\@\xspace} \providecommand{\eg}{e.g.\@\xspace} \newcommand{\@@dualboxes}[3][1]{ \par\noindent - \raisebox{\depth-#1\totalheight}{#2} \hfill + \raisebox{\depth-#1\totalheight}{#2} \hfill % needs calc \raisebox{\depth-#1\totalheight}{#3} \smallskip } \newcommand{\@dualboxes}[3][1]{ @@ -587,26 +783,81 @@ \raisebox{\depth-#1\totalheight}{#3} \hfill\mbox{}\smallskip } \newcommand{\dualboxes}{\@ifstar{\@@dualboxes}{\@dualboxes}} + +% \end{macrocode} +% +% The following macro has been found in the \texttt{fiche.cls} file, +% distributed with the \textsf{mafr} package by Christian Obrecht~\cite{MAFR}. +% It had some tiny bugs in spacing. +% I just made small changes: adding some lengths parameters and the "\linewidth" +% instruction (without whom, lists in the first side send the second side out of the page). +% \begin{macrocode} +\newlength\juxtopskip +\setlength\juxtopskip{\smallskipamount} +\newlength\juxbottomskip +\setlength\juxbottomskip{\smallskipamount} +\newlength\juxsepspace +\setlength\juxsepspace{1.5em} +\newlength\side@width + +\newenvironment{juxtapose}[1][0.5]{% left side ratio + \def\otherside{\egroup % internal function remembers \side@width + \@tempdima=\side@width + \side@width=\textwidth + \advance\side@width by -\@tempdima + \advance\side@width by -\juxsepspace + \hskip\juxsepspace + \linewidth=\side@width % for lists environments + \vcenter\bgroup\hsize=\side@width\noindent % \ignorespaces useless + } + \side@width=#1\textwidth + \advance\side@width by -0.5\juxsepspace + \linewidth=\side@width % for lists environments + \par\vskip\juxtopskip% + \hbox\bgroup\begin{math} + \vcenter\bgroup\hsize=\side@width\noindent\ignorespaces + }{\egroup\end{math}\egroup\vskip\juxbottomskip} + % \end{macrocode} % % \medskip -% \begin{thebibliography}{9} +% \begin{thebibliography}{17} +% \begin{raggedright} +% \bibitem{SETSP} \emph{The \textsf{setspace} Package}, Robin Fairbairns, Geoffrey Tobin, +% CTAN, v9.7b 2022/12/04. % \bibitem{XSP} \emph{The \textsf{xspace} package}, David Carlisle, Morten Høgholm, % CTAN v1.13 2014/10/28. -% \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03. % \bibitem{CENTER} \emph{\textsf{centeredline} -- A macro for centering lines}, Jean-François -% Burnol, CTAN, v1.1 2019/05/03. -% \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN, v1.8 2019/03/11. +% Burnol, CTAN, v1.2 2022/10/10. +% \bibitem{MAFR} \emph{La distribution \textsf{mafr}}, Christian Obrecht, +% CTAN, v1.0 17/09/2006. +% \bibitem{ARCOL} \emph{The \textsf{arraycols} package}, Antoine Missier, CTAN, +% v1.2 2021/09/20. +% \bibitem{MSMATH} \emph{\textsf{mismath} -- Miscellaneous mathematical macros}, +% Antoine Missier, CTAN, v2.5 2023/02/24. +% \bibitem{MKCELL} \emph{The \textsf{makecell} package}, Olga Lapko, CTAN, v0.1e 2009/08/03. +% \bibitem{CELLSP} \emph{The \textsf{cellspace} package}, Josselin Noirel, CTAN, +% v1.9.0 2022/01/04. +% \bibitem{PIFONT} \emph{\textsf{pifont} -- Using common PostScript fonts with \LaTeX}, +% Walter Schmidt, CTAN, v9.3 2020/03/25. % \bibitem{ENUM} \emph{Customizing lists with the \textsf{enumitem} package}, Javier Bezos, % CTAN, v3.9 2019/06/20. -% \bibitem{ARCOL} \emph{The \textsf{arraycols} package}, Antoine Missier, CTAN, v1.2 2021/09/20. -% \bibitem{MSMATH} \emph{\textsf{mismath} -- Miscellaneous mathematical macros}, Antoine Missier, -% CTAN, v1.8 2020/11/15. +% \bibitem{WRAPFIG} \emph{The \textsf{wrapfig} package}, Donald Arseneau, CTAN, +% v3.6 2003/01/31. % \bibitem{PICINS} \emph{Bilder in \LaTeX -Dokumenten -- PicIns-Benutzerhandbuch}, % Joachim Bleser, Edmund Lang, CTAN, v3.0 sept. 1992. +% \bibitem{PICINPAR} \emph{The \textsf{picinpar} package}, Friedhelm Sowa, Stefan Blochwitz, +% CTAN, v1.3 2022/11/25. +% \bibitem{VWCOL} \emph{The \textsf{vwcol} package}, Will Robertson, CTAN, v0.2 2015/02/10. +% \bibitem{PARA} \emph{Package \textsf{paracol}: Yet Another Multi-Column Package +% to Typeset Columns in Parallel}, Hiroshi Nakashima, CTAN, v1.35 2018/12/31. +% \bibitem{RELP} \emph{Parallel typesetting for critical editions: +% the \textsf{reledpar} package}, Maïeul Rouquette, Peter Wilson, Herries Press, CTAN, +% 2.25.3 2022/04/22. % \bibitem{COMP} \emph{The \LaTeX\ Companion}. Frank Mittelbach, Michel Goossens, % Johannes Braams, David Carlisle, Chris Rowley, 2nd edition, Pearson Education, 2004. +% \end{raggedright} % \end{thebibliography} - +% % \Finale \endinput diff --git a/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.ins b/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.ins index fb950279c3b..a2b2aa9776b 100644 --- a/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.ins +++ b/Master/texmf-dist/source/latex/spacingtricks/spacingtricks.ins @@ -1,5 +1,5 @@ %% -%% Copyright (C) 2019-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr> +%% Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> %% %% This file may be distributed and/or modified under the conditions of %% the LaTeX Project Public License, either version 1.3 of this license @@ -21,7 +21,7 @@ This is a generated file. -Copyright (C) 2019-2021 by Antoine Missier <antoine.missier@ac-toulouse.fr> +Copyright (C) 2019-2023 by Antoine Missier <antoine.missier@ac-toulouse.fr> This file may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 of this license @@ -46,7 +46,7 @@ and version 1.3 or later is part of all distributions of LaTeX version \Msg{* spacingtricks.sty *} \Msg{* *} \Msg{* To produce the documentation run the file *} -\Msg{* spacingtricks.dtx through LaTeX + dvips + ps2pdf *} +\Msg{* spacingtricks.dtx through LaTeX *} \Msg{* *} \Msg{* Happy TeXing! *} \Msg{* *} |