summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/association-matrix/association-matrix.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/association-matrix/association-matrix.tex')
-rw-r--r--macros/latex/contrib/association-matrix/association-matrix.tex59
1 files changed, 38 insertions, 21 deletions
diff --git a/macros/latex/contrib/association-matrix/association-matrix.tex b/macros/latex/contrib/association-matrix/association-matrix.tex
index bea65f80ce..39416dcc90 100644
--- a/macros/latex/contrib/association-matrix/association-matrix.tex
+++ b/macros/latex/contrib/association-matrix/association-matrix.tex
@@ -29,18 +29,18 @@
hidelinks, % disable link borders
%colorlinks=false, % false: boxed links; true: colored links
}
-\usepackage[capitalize]{cleveref}
+\usepackage{cleveref} % *MUST* be loaded *after* HyperRef.
\usepackage{minted}
\usemintedstyle{borland}
\setminted{autogobble}
\usepackage{xcolor}
\newrobustcmd{\release}[3]{%
- \subsection{\emph{#1}: \texttt{#2} - #3}\label{release-#2}%
+ \subsection{\emph{#1}: \texttt{#2} - #3}\label{release:#2}%
}
\newrobustcmd{\command}[3]{%
- \paragraph{\textsf{#1}} \textbf{\color{blue} \texttt{#2}}
+ \paragraph{\textsf{#1}} \textbf{\color{blue} \texttt{#2}}\label{command:#1}%
#3
}
@@ -90,7 +90,7 @@
\section{Introduction}\label{intro}
The \textsf{association-matrix} package allows the convenient creation of association matrices.
The package aims to automate the generation, without the user having to manually write the table's code and have to deal with the inefficiency of copy-pasting information.
-The package's interface is simple, the user needs to define the table's contents (\cref{define}) and then can generate the table (\cref{tablegen}).
+The package's interface is simple, the user needs to define the table's contents (\Cref{define}) and then can generate the table (\Cref{tablegen}).
Note that it is important to have \emph{every} necessary row entries and column headings defined \textbf{before} the first call to a table generation, otherwise, only a partial table will be generated.
@@ -101,7 +101,7 @@ Originally, the package \textsc{theses-vs-publications} had been devised, but th
Commonly, the dissertation's \emph{``Introduction''} and \emph{``Summary''} chapters will provide the full table.
In addition, at the end of each individual thesis chapters will provide a table with the current thesis's row in the table \emph{highlighted}.
-An example usage and association matrix is provided in \cref{example}.
+An example usage and association matrix is provided in \Cref{example}.
\subsection{Licence}
Copyright \textcopyright\ 2020 Whisperity.
@@ -110,7 +110,7 @@ Permission is granted to copy, distribute and\slash or modify this software unde
}
\subsection{Example}\label{example}
-The definitions (\cref{define}) should be done early in the document, but at least before the first table render (\cref{tablegen}) call.
+The definitions (\Cref{define}) should be done early in the document, but at least before the first table render (\Cref{tablegen}) call.
\immediate\openout\tempfile=assoc-mx-example.aux
\immediate\write\tempfile{\bslchar amxrow{association-matrix}{Association Matrices}}
@@ -183,10 +183,10 @@ The cells at the intersection of the row and the column will have a \textbullet{
Generates the full table incorporating the previously registered data.
Internally, a \texttt{tabular} environment is created with the table's data generated by the package.
It is the user's responsibility to wrap this into a floating \texttt{table}, if they so wish.
-
+
If \texttt{[<row>]} is given a row's \emph{key}, the row for that key will be \textbf{highlighted}.
Highlighting is done by typesetting the row's \emph{text} in \textbf{bold face}, and changing every \textbullet{} in the \emph{other} rows to \textopenbullet{}.
-
+
\begin{figure}[H]
\centering
\amxgenerate[latex]
@@ -231,7 +231,7 @@ All aspects on how the individual elements in the table are rendered can be cust
}
\command{amxsetColumnHeading}{\bslchar amxsetColumnHeading\lbchar<render-command>\rbchar}{%
- Sets the rendered table's top row's cells to be rendered via passing the column heading's text (see \cref{query}) to the given \texttt{<render-command>}.
+ Sets the rendered table's top row's cells to be rendered via passing the column heading's text (see \Cref{query}) to the given \texttt{<render-command>}.
This command must be a command that takes \textbf{1} argument, defined by the user earlier.
\immediate\openout\tempfile=setcolheading-example.aux
@@ -242,9 +242,9 @@ All aspects on how the individual elements in the table are rendered can be cust
}
\command{amxsetRowFormat}{\bslchar amxsetRowFormat(Highlighted)\lbchar<render-command>\rbchar}{%
- Sets the rendered table's left cells' to be rendered via passing the row's index and text (see \cref{query}) to the given \texttt{<render-command>}.
+ Sets the rendered table's left cells' to be rendered via passing the row's index and text (see \Cref{query}) to the given \texttt{<render-command>}.
This command must be a command that takes \textbf{2} arguments, defined by the user earlier.
- The \texttt{Highlighted} version sets the renderer for the highlighted row, if highlighted rendering (see \cref{tablegen}) is done.
+ The \texttt{Highlighted} version sets the renderer for the highlighted row, if highlighted rendering (see \Cref{tablegen}) is done.
\immediate\openout\tempfile=setrowformat-example.aux
\immediate\write\tempfile{\bslchar newcommand{\bslchar parenRow}[2]{(\hschar1) \bslchar emph{\hschar2}}}
@@ -287,10 +287,10 @@ All aspects on how the individual elements in the table are rendered can be cust
\command{amxReset}{\bslchar amxReset}{%
Clears \textbf{all} internal data structures and customisations for the package, allowing the user to later typeset a different, independent matrix.
- The previously defined entries are lost, and in case the ``previous'' matrix is needed, it must be set up again with a sequence of definition commands (see \cref{define}).
-
- For example, putting the code in \cref{example} and the one below into the same source file will create the smaller matrix at the second invocation of \texttt{\bslchar amxgenerate}.
-
+ The previously defined entries are lost, and in case the ``previous'' matrix is needed, it must be set up again with a sequence of definition commands (see \Cref{define}).
+
+ For example, putting the code in \Cref{example} and the one below into the same source file will create the smaller matrix at the second invocation of \texttt{\bslchar amxgenerate}.
+
\immediate\openout\tempfile=reset-example.aux
\immediate\write\tempfile{\bslchar amxReset}
\immediate\write\tempfile{\bslchar amxrow{sample}{Sample}}
@@ -298,11 +298,11 @@ All aspects on how the individual elements in the table are rendered can be cust
\immediate\write\tempfile{\bslchar amxassociate{x}{sample}}
\immediate\write\tempfile{\detokenize{\amxgenerate}}
\immediate\closeout\tempfile
-
+
\amxDisable
\input{reset-example.aux}
\amxEnable
-
+
\begin{figure}[H]
\centering
\inputminted{latex}{reset-example.aux}
@@ -311,6 +311,17 @@ All aspects on how the individual elements in the table are rendered can be cust
}
\clearpage
+\section{Interaction \& compatibility with other packages}\label{compatibility}
+There are several packages that interact with commands in a way that interferes with the behaviour of \texttt{association-matrix}.
+When using such packages, \texttt{association-matrix} \textbf{must be loaded after} them.
+During the initialisation of \texttt{association-matrix}, compatibility is ensured by rewiring some of the logic.
+
+\begin{enumerate}
+ \item\label{compatibility:array} \texttt{array}:
+ Replaced the \texttt{tabular} environment's logic (used by \hyperref[command:amxgenerate]{\mintinline{latex}{\amxgenerate}}) by eagerly attempting to consume the number of columns to create, which was previously created by a macro locally.
+ The issue was fixed in \hyperref[release:v1.1]{release 1.1} by making sure that in presence of the \texttt{array} package, our package does the right thing.
+\end{enumerate}
+
\section{Development}
The development of \textsf{association-matrix} is done on GitHub: \url{http://github.com/whisperity/association-matrix}.
Please report issues and submit patches here.
@@ -320,6 +331,12 @@ Any new command or change should be supplemented with appropriate documentation,
If there is a discrepancy or regression in the looks of \emph{this document} that is not explained by the changes, it should be investigated!
\section{Changelog}\label{changelog}
+\release{2022/10/29}{v1.1}{Compatibility with \texttt{array}}
+\begin{itemize}
+ \item Fixed error message ``\texttt{Illegal pream-token: \`{}c' used}'' emitted by the \texttt{array} package by injecting a compatibility shim.
+ (See \cref{compatibility:array} in \Cref{compatibility}.)
+\end{itemize}
+
\release{2020/10/25}{v1.0}{Initial release}
\begin{itemize}
\item Basic functionality of defining entries, rendering tables, and customising the renderers are implemented.
@@ -330,12 +347,12 @@ If there is a discrepancy or regression in the looks of \emph{this document} tha
Whisperity. \textit{The \textsf{association-matrix} Package -- An easy and clear association matrix generator}.
Online, \url{http://ctan.org/pkg/association-matrix} (accessed 2020/10/25), 2020.
-\bibitem{latex}
-Leslie B.\ Lamport, Donald E.\ Knuth et al.
-\textit{\LaTeX{} -- A document preparation system}.
+\bibitem{latex}
+Leslie B.\ Lamport, Donald E.\ Knuth et al.
+\textit{\LaTeX{} -- A document preparation system}.
Online, \url{http://latex-project.org/} (accessed 2020/10/25), 1984.
-\bibitem{etoolbox}
+\bibitem{etoolbox}
Philipp Lehman, Joseph Wright.
\textit{The \textsf{etoolbox} Package -- An e-\TeX{} Toolbox for Class and Package Authors}
Online, \url{http://ctan.org/pkg/etoolbox} (accessed 2020/10/25), 2007.