summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/subfigmat
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/subfigmat
Initial commit
Diffstat (limited to 'macros/latex/contrib/subfigmat')
-rw-r--r--macros/latex/contrib/subfigmat/subfigmat-doc.pdfbin0 -> 284076 bytes
-rw-r--r--macros/latex/contrib/subfigmat/subfigmat-doc.tex177
-rw-r--r--macros/latex/contrib/subfigmat/subfigmat.sty166
3 files changed, 343 insertions, 0 deletions
diff --git a/macros/latex/contrib/subfigmat/subfigmat-doc.pdf b/macros/latex/contrib/subfigmat/subfigmat-doc.pdf
new file mode 100644
index 0000000000..03d71a2458
--- /dev/null
+++ b/macros/latex/contrib/subfigmat/subfigmat-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/subfigmat/subfigmat-doc.tex b/macros/latex/contrib/subfigmat/subfigmat-doc.tex
new file mode 100644
index 0000000000..05c31cf835
--- /dev/null
+++ b/macros/latex/contrib/subfigmat/subfigmat-doc.tex
@@ -0,0 +1,177 @@
+\documentclass[pagesize=auto, fontsize=12pt, DIV=10, headings=normal]{scrartcl}
+
+\usepackage{fixltx2e}
+\usepackage{etex}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage[svgnames]{xcolor}
+\usepackage{listings}
+\usepackage{microtype}
+\usepackage{hyperref}
+
+\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
+\newcommand*{\bmail}[1]{\href{mailto:#1}{\texttt{<#1>}}}
+\newcommand*{\pkg}[1]{\textsf{#1}}
+\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
+\makeatletter
+\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
+\makeatother
+\newcommand*{\env}[1]{\texttt{#1}}
+\newcommand*{\meta}[1]{\textlangle\textsl{#1}\textrangle}
+
+\addtokomafont{title}{\rmfamily}
+
+\lstset{%
+ language=[LaTeX]TeX,%
+ columns=flexible,%
+ upquote=true,%
+ numbers=left,%
+ basicstyle=\ttfamily,%
+ keywordstyle=\color{Navy},%
+ commentstyle=\color{DimGray},%
+ stringstyle=\color{SeaGreen},%
+ numberstyle=\scriptsize\color{SlateGray}%
+}
+
+\title{The \pkg{subfigmat} package\thanks{This manual corresponds to \pkg{subfigmat.sty}~v1.0, dated~27 Feb 1999.}}
+\author{%
+ Steven Douglas Cochran\thanks{\mail{sdc+@cs.cmu.edu}}%
+ \and Bil Kleb\thanks{\mail{w.l.kleb@larc.nasa.gov}}%
+}
+\date{27 Feb 1999}
+
+
+\begin{document}
+
+\maketitle
+
+\noindent
+defines an array/matrix-type environment for subfigures and
+subtables of the form,
+%
+\begin{lstlisting}
+\begin{subfigmatrix}{NC}
+ \subfigure[]{..}
+ ...
+\end{subfigmatrix}
+\end{lstlisting}
+%
+where \meta{NC} is the number of subfigures per row (i.\,e.,\ the
+number of columns). the subfigures are ordered from
+left-to-right, then top-to-bottom.
+
+the environment is used within a float environment such as
+\env{figure} or \env{table}. each subfigure should have a variable width
+tied to the local \cmd{\linewidth} value so each can be shrunk or
+expanded to accomate the requested layout.
+
+The environment does not require ``square'' matrices since it
+only works on a row-by-row basis; thus you could have a $2 \times 4$,
+a $1 \times 3$, or a $4 \times 2$ if you so choose. if you neglect to give
+it a full row, such as the case of a $3 \times 3$ matrix with only
+8~elements, it simply fills the rows from left to right until
+it runs out of elements.
+
+
+\section{further example:}
+
+if you wanted to create a figure with four subfigures in a tiled
+or matrix format of $2 \times 2$, the following would suffice,
+%
+\begin{lstlisting}
+\begin{figure}
+ \begin{subfigmatrix}{2}
+ \subfigure[]{...}
+ \subfigure[]{...}
+ \subfigure[]{...}
+ \subfigure[]{...}
+ \end{subfigmatrix}
+ \caption{Example.}
+ \label{f:eg}
+\end{figure}
+\end{lstlisting}
+%
+the result would look similar to the following,
+%
+\begin{quote}
+ \begin{tabular}{@{\quad}c@{\quad}c@{\quad}}
+ [subfig] & [subfig] \\
+ (a) & (b) \\[2ex]
+ [subfig] & [subfig] \\
+ (c) & (d) \\[2ex]
+ \multicolumn{2}{c}{Figure 1: Example.}
+ \end{tabular}
+\end{quote}
+
+
+\section{notes:}
+
+comments, bugs, fixes can be sent to \mail{w.l.kleb@larc.nasa.gov}.
+what becomes of them is another story. ;)
+
+each subfigure is placed within a \env{minipage} of the proper width
+to fit \meta{NC} subfigures within the current float's \cmd{\linewidth},
+accounting for $2 \times \cmd{\tabcolsep}$'s worth of space between each
+adjacent subfigure.
+
+\cmd{\linewidth} is a fairly general length. it is equal to
+\cmd{\textwidth} for single-column formats, \cmd{\columnwidth} for multiple-%
+column documents (and also single-column documents), or
+according to a \cmd{\parbox} or \env{minipage} environment.
+
+if you are using the \pkg{graphicx} package, the subfigure widths are
+automatically set to the local \cmd{\linewidth}.
+
+the separation between figures can be changed via the
+\cmd{\sfmcolsep} variable, e.\,g.,
+%
+\begin{lstlisting}
+\setlength{\sfmcolsep}{\hspace{0.2in}}
+\end{lstlisting}
+%
+to set a ``hard'' inter-column spacing as opposed to the
+default behavior of tying the inter-column spacing to the
+documents tabular column spacing (\cmd{\tabcolsep}\}.
+
+
+\section{to do:}
+
+\begin{itemize}
+\item transposed ordering: from top-to-bottom, then left-to-right.
+\end{itemize}
+
+\pagebreak[2]
+
+
+\section{history:}
+
+\begin{description}
+\item[25 Feb 1999]
+ Bil Kleb \bmail{w.l.kleb@larc.nasa.gov} [v1.0]\\
+ Edited for Arseneau-style release to \textsc{ctan}.
+ Changed \cmd{\sfm@colsep} to a more user-tunable \cmd{\sfmcolsep}.
+
+\item[27 Feb 1997]
+ Bil Kleb \bmail{w.l.kleb@larc.nasa.gov}\\
+ Minor changes.
+
+\item[27 Feb 1997]
+ Steven Douglas Cochran \bmail{sdc+@cs.cmu.edu}\\
+ Created.
+
+\item[24 Feb 1997]
+ Bil Kleb \bmail{w.l.kleb@larc.nasa.gov}\\
+ Posted question to news:comp.text.tex.
+\end{description}
+
+
+\section{distribution:}
+
+this program can redistributed and/or modified under the terms
+of the \LaTeX\ Project Public License Distributed from CTAN
+archives in directory \href{http://ctan.org/macros/latex/base/lppl.txt}{\nolinkurl{macros/latex/base/lppl.txt}}; either
+version~1 of the License, or (at your option) any later version.
+
+
+\end{document}
diff --git a/macros/latex/contrib/subfigmat/subfigmat.sty b/macros/latex/contrib/subfigmat/subfigmat.sty
new file mode 100644
index 0000000000..7f873d0f5a
--- /dev/null
+++ b/macros/latex/contrib/subfigmat/subfigmat.sty
@@ -0,0 +1,166 @@
+% subfigmat.sty - version 1.0 <27 feb 1999>
+%
+% defines an array/matrix-type environment for subfigures and
+% subtables of the form,
+%
+% \begin{subfigmatrix}{NC}
+% \subfigure[]{..}
+% ...
+% \end{subfigmatrix}
+%
+% where NC is the number of subfigures per row (i.e., the
+% number of columns). the subfigures are ordered from
+% left-to-right, then top-to-bottom.
+
+% the environment is used within a float environment such as
+% figure or table. each subfigure should have a variable width
+% tied to the local \linewidth value so each can be shrunk or
+% expanded to accomate the requested layout.
+%
+% The environment does not require ``square'' matrices since it
+% only works on a row-by-row basis; thus you could have a 2 x 4,
+% a 1 x 3, or a 4 x 2 if you so choose. if you neglect to give
+% it a full row, such as the case of a 3 x 3 matrix with only
+% 8 elements, it simply fills the rows from left to right until
+% it runs out of elements.
+%
+% for further information, see the example and other notes after
+% the \endinput in this file.
+%
+\ProvidesPackage{subfigmat}[1999/02/27 v1.0 Subfigure Matrix Package]
+\RequirePackage{subfigure}[1995/03/06]
+%
+% define and initialize the internal variables:
+\newlength{\sfm@width}% Subfigure width
+\newlength{\sfmcolsep}% Subfigure column separation
+\setlength{\sfmcolsep}{2\tabcolsep}% Use twice tabular column separation
+\newcounter{sfm@count}% Item count
+%
+% the environment:
+\newenvironment{subfigmatrix}[1]{%
+ \begingroup%
+ \centering%
+ \vspace*{-\subfigtopskip}% remove the vertical spacing inserted
+ % by the subfigure package (version 2.0)
+ %
+ % Save the "real" subfigure macro and start the item counter off
+ % at -1 to detect the first item.
+ % Set the \sfm@width to the single element size.
+ %
+ \let\sfm@subfigure\subfigure%
+ \setcounter{sfm@count}{-1}%
+ \setlength{\sfm@width}{\linewidth}%
+ \addtolength{\sfm@width}{\sfmcolsep}%
+ \addtolength{\sfm@width}{-#1\sfmcolsep}%
+ \divide\sfm@width by#1
+ \@ifundefined{Gin@scalex}%
+ \relax % we are not running graphicx!
+ {\setkeys{Gin}{width=\sfm@width,keepaspectratio}}%
+ %
+ % Redefine the \subfigure and \subtable macros locally to this
+ % environment so that we can wrap them with minipages.
+ %
+ \def\subfigure{%
+ \ifnum \value{sfm@count} = -1
+ % very first item
+ \setcounter{sfm@count}{1}%
+ \else% Not very first item
+ \addtocounter{sfm@count}{1}%
+ \ifnum \value{sfm@count} = 1
+ % Beginning of next column, finish the last column.
+ \\%
+ \else%
+ % middle or last item
+ \hfill%
+ \ifnum #1 = \value{sfm@count}%
+ % Reset the counter of at the end of the row.
+ \setcounter{sfm@count}{0}%
+ \fi%
+ \fi%
+ \fi%
+ \sfm@subfigure}%
+ \let\subtable\subfigure%
+ }{%
+ \\%
+ \endgroup}%
+%
+\endinput
+
+further example:
+
+ if you wanted to create a figure with four subfigures in a tiled
+ or matrix format of 2 x 2, the following would suffice,
+
+ \begin{figure}
+ \begin{subfigmatrix}{2}
+ \subfigure[]{...}
+ \subfigure[]{...}
+ \subfigure[]{...}
+ \subfigure[]{...}
+ \end{subfigmatrix}
+ \caption{Example.}
+ \label{f:eg}
+ \end{figure}
+
+ the result would look similar to the following,
+
+ [subfig] [subfig]
+ (a) (b)
+
+ [subfig] [subfig]
+ (c) (d)
+
+ Figure 1: Example.
+
+notes:
+
+ comments, bugs, fixes can be sent to w.l.kleb@larc.nasa.gov.
+ what becomes of them is another story. ;)
+
+ each subfigure is placed within a minipage of the proper width
+ to fit NC subfigures within the current float's \linewidth,
+ accounting for 2\tabcolsep's worth of space between each
+ adjacent subfigure.
+
+ \linewidth is a fairly general length. it is equal to
+ \textwidth for single-column formats, \columnwidth for multiple-
+ column documents (and also single-column documents), or
+ according to a \parbox or minipage environment.
+
+ if you are using the graphicx package, the subfigure widths are
+ automatically set to the local \linewidth.
+
+ the separation between figures can be changed via the
+ \sfmcolsep variable, e.g.,
+
+ \setlength{\sfmcolsep}{\hspace{0.2in}}
+
+ to set a ``hard'' inter-column spacing as opposed to the
+ default behavior of tying the inter-column spacing to the
+ documents tabular column spacing (\tabcolsep}.
+
+to do:
+
+ transposed ordering: from top-to-bottom, then left-to-right.
+
+history:
+
+ 25 Feb 1999 Bil Kleb <w.l.kleb@larc.nasa.gov> [v1.0]
+ Edited for Arseneau-style release to ctan.
+ Changed \sfm@colsep to a more user-tunable \sfmcolsep.
+
+ 27 Feb 1997 Bil Kleb <w.l.kleb@larc.nasa.gov>
+ Minor changes.
+
+ 27 Feb 1997 Steven Douglas Cochran <sdc+@cs.cmu.edu>
+ Created.
+
+ 24 Feb 1997 Bil Kleb <w.l.kleb@larc.nasa.gov>
+ Posted question to news:comp.text.tex.
+
+distribution:
+
+ this program can redistributed and/or modified under the terms
+ of the LaTeX Project Public License Distributed from CTAN
+ archives in directory macros/latex/base/lppl.txt; either
+ version 1 of the License, or (at your option) any later version.