From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 macros/latex/contrib/dlfltxb/dlfltxbmarkup.tex | 333 +++++++++++++++++++++++++
 1 file changed, 333 insertions(+)
 create mode 100644 macros/latex/contrib/dlfltxb/dlfltxbmarkup.tex

(limited to 'macros/latex/contrib/dlfltxb/dlfltxbmarkup.tex')

diff --git a/macros/latex/contrib/dlfltxb/dlfltxbmarkup.tex b/macros/latex/contrib/dlfltxb/dlfltxbmarkup.tex
new file mode 100644
index 0000000000..2fc969ca62
--- /dev/null
+++ b/macros/latex/contrib/dlfltxb/dlfltxbmarkup.tex
@@ -0,0 +1,333 @@
+\RequirePackage{etex}
+\documentclass[11pt,oneside,a4paper,oldfontcommands,danish,english,article]{memoir}
+\usepackage[T1]{fontenc}
+\usepackage[widespace]{fourier}
+\usepackage{babel}
+\usepackage{calc}
+\usepackage[round]{natbib}
+
+\makeatletter
+\DeclareRobustCommand{\LaTeX}{L\kern-.28em%
+        {\sbox\z@ T%
+         \vbox to\ht\z@{\hbox{\check@mathfonts
+                              \fontsize\sf@size\z@
+                              \math@fontsfalse\selectfont
+                              A}%
+                        \vss}%
+        }%
+        \kern-.15em%
+        \TeX}
+\makeatother
+
+\setlxvchars[\normalfont]
+
+\settypeblocksize{*}{1.3\lxvchars}{1.618}
+
+% for print
+\setlrmargins{*}{*}{1.6}
+\setulmargins{*}{*}{1.3}
+
+% for online
+\setlrmargins{*}{*}{0.7}
+\setulmargins{*}{*}{1}
+\setlength\marginparwidth{4cm}
+
+\checkandfixthelayout
+
+
+\hfuzz=30pt
+
+\newif\ifhyperlinks
+\hyperlinksfalse
+\hyperlinkstrue
+
+\ifhyperlinks 
+\usepackage{nameref}
+\fi
+
+\ifhyperlinks
+  \usepackage{color}
+  \usepackage[colorlinks,breaklinks]{hyperref}
+  \definecolor{linkcolour}{rgb}{0,0.2,0.6}
+  \definecolor{citecolour}{rgb}{0,0.6,0.2}
+  % \definecolor{filecolor}{rgb}{0,0.2,0.6}
+  \definecolor{urlcolour} {rgb}{0.8,0,0.8}
+  
+  \hypersetup{
+    pdftitle={The dlfltxbmarkup package},
+    pdfauthor={Copyright \textcopyright\ number\year\ Lars Madsen},
+    linkcolor=linkcolour,citecolor=citecolour,
+    filecolor=urlcolour,urlcolor=urlcolour,
+    plainpages=false,
+  }
+  
+  \ifpdf\else\usepackage{breakurl}\fi
+  \usepackage{memhfixc}
+\fi
+
+\clubpenalty=300
+\widowpenalty=300
+
+
+\ifpdf
+\usepackage[protrusion=true,expansion=true]{microtype}
+\else
+\usepackage[protrusion=true]{microtype}
+\fi
+
+\makeatother
+
+
+\usepackage[loadsampleconfig]{dlfltxbmarkup}
+\usepackage{dlfltxbmisc}
+
+\renewcommand\felineMarginAdjustment{\RaggedLeft}
+
+\setlength\marginparsep{2em}
+\setlength\marginparwidth{3cm}
+
+\chapterstyle{article}
+
+\setsecheadstyle{\normalfont\large\bfseries\raggedright}
+
+
+\reversemarginpar
+\reversesidepartrue
+\twocolumnfootnotes
+
+\setsecnumdepth{part}
+
+\pagestyle{plain}
+
+\hyphenation{felineWrite-InMargin felineMargin-Adjustment}
+
+\begin{document}
+
+\title{The \textsf{dlfltxbmarkup} package\thanks{Version: 0.6}}
+\author{Lars Madsen\thanks{Email: daleif@imf.au.dk}}
+\maketitle
+
+\noindent
+This package implements the \markup[nomk]{markup} features that are
+used extensively in \cite{ltxb}.
+
+
+\section{Requirements}
+\label{sec:requirements}
+
+This package depends on several \markup[nomk,cls]{memoir} internals so
+it can only be used together with the \markup[nomk,cls]{memoir}
+class. Further requirements are \markup[nomk,sty]{keyval} and
+\markup[nomk,sty]{ragged2e}. 
+
+
+\section{Usage}
+\label{sec:usage}
+
+The \markup[nomk]{markup} macro is intended to be used for
+categorising various types of keywords. These can then be
+automatically written in the text as well as in the (outer) margin and 
+added to the index.
+\begin{syntax}
+  \markup{markup}\oarg{keys}\marg{text}
+\end{syntax}
+The key list is a mix of control keys and user defined category
+keys. How to created the user defined keys are explained later.
+The control keys are listed below.
+\begingroup
+\renewcommand\descriptionlabel[1]{%
+  \hspace\labelsep%
+  \settowidth\unitlength{\texttt{#1}}%
+  \addtolength\unitlength{\labelsep}%
+  \ifdim\unitlength>\leftmargin%
+    \parbox[t]{\textwidth}{\normalsize\texttt{#1}}%
+  \else%
+    \parbox[t]{\leftmargin-\labelsep}{\normalsize\texttt{#1}}%
+  \fi%
+}
+\begin{description}\firmlist\firmlist
+\small
+%\define@key{FelineIndex}{notxt} []{\@feline@txtfalse}  % = nowr
+\item[notxt] do not write anything in the text
+
+%\define@key{FelineIndex}{nowr}  []{\@feline@txtfalse}  % no writing in text
+\item[nowr] alias for \texttt{notxt}
+%\define@key{FelineIndex}{nomk}  []{\@feline@mrgnfalse} % no mark in margin
+\item[nomk] do not write anything in the margin
+%\define@key{FelineIndex}{noidx} []{\@feline@idxfalse}  % no adding index
+\item[noidx] do not add anything to the index
+%\define@key{FelineIndex}{hsp}   []{\@feline@hsptrue}
+%\item[hsp] secret
+% locally use a different index command
+%\define@key{FelineIndex}{idxit} []{\renewcommand\feline@index@cmd{\itindex}}
+\item[idxit] index entry in italic (i.e. page number in italic)
+%\define@key{FelineIndex}{idxbf} []{\renewcommand\feline@index@cmd{\bfindex}}
+\item[idxbf] index entry in bold face
+%\define@key{FelineIndex}{idxn}  []{\renewcommand\feline@index@cmd{\index}}
+\item[idxn] normal index entry
+
+%\define@key{FelineIndex}{addtospvrt}{\addtolength{\feline@spvs@addto}{#1\onelineskip}}
+\item[addtospvrt=\Arg{number}] to be used in situations where we use
+  \markup[nomk]{sidepar} instead of \markup[nomk]{marginpar}. This key
+  will move the text further down in the margin. It is a unit-less
+  number (\markup[length,nomk]{onelineskip} is the unit).
+
+%\define@key{FelineIndex}{vaddtosp}  {\addtolength{\feline@spvs@addto}{#1\onelineskip}}
+
+\item[vaddtosp=\Arg{number}] alias for \texttt{addtospvrt}
+
+% force the use of \sidepar, don't think I've ever used this
+%\define@key{FelineIndex}{forcesidepar}[true]{\dlf@M@setbool{#1}{@feline@forcesidepar}}
+ \item[forcesidepar] forces the use of \markup[nomk]{sidepar} instead
+   of \markup[nomk]{marginpar}
+
+\end{description}
+\endgroup
+\noindent
+The package has one option >>\texttt{loadsampleconfig}<< which
+will auto load the\linebreak >>\path{dlfltxbmarkup-sample.cfg}<< sample file (which
+actually contains the categories that I use for the creation of
+\cite{ltxb}). 
+
+
+\section{Defining your own categories}
+\label{sec:defining-your-own}
+
+The main macro for defining your own category keys are
+\begin{syntax*}
+  \markup{felineKeyGenerator}\marg{key}\marg{description}\marg{margin
+    code}\marg{index code}\marg{text code}
+\end{syntax*}
+In each of the last three arguments >>\texttt{\#1}<< will refer to the
+mandatory argument given to \markup[nomk]{markup}. The reason for
+adding the \Arg{description} part will be explained later. For the
+code to be used in the three last arguments we have a few helper
+macros that might be useful
+\begin{syntax}
+  \markup{cs}\marg{text}
+\end{syntax}
+for writing the name of \LaTeX\ macros.
+\begin{syntax}
+  \markup{css}\marg{text}
+\end{syntax}
+like \markup[nomk]{cs} but to be used in the index, it will typeset
+the >>\verb+\+<< in the left margin.
+\begin{syntax}
+  \markup{felineWriteInMargin}\marg{text}
+\end{syntax}
+Depending on whether \markup{NoMarginparAvail} is true or not,
+it will use \markup[nomk]{sidepar} (when \markup[nomk]{marginpar} is
+unavailable) and \markup[nomk]{marginpar} otherwise (unless of course the
+>>\texttt{forcesidepar}<< key is in effect). A
+\markup[nomk]{marginpar} can for example not be used from inside a
+\markup[nomk,env]{framed} or \markup[nomk,env]{shaded} environment. So
+in such an environment one can just make sure that
+\markup[nomk]{NoMarginparAvail} is set to true and then we will still
+have some thing in the margin. It is recommended to use 
+\begin{syntax}
+  \markup{strictpagechecktrue}
+\end{syntax}
+in order to get more rigorous side checking. Internally we use
+\markup[nomk]{checkoddpage} and \markup[nomk]{ifodd} to test whether
+we are in the left or right margin. We also use
+\begin{syntax}
+  \markup{felineMarginAdjustment}
+\end{syntax}
+to ensure that the margin text has the correct adjustment. The default
+setting is
+\begin{verbatim}
+\newcommand\felineMarginAdjustment{%
+  \ifoddpage\RaggedRight\else\RaggedLeft\fi}
+\end{verbatim}
+In this documentation which is not twosided, it has been redefined to
+be \markup[nomk]{RaggedLeft}.
+
+
+For index entries we recommend the use of
+\begin{syntax}
+  \markup{felineIndexCmd}
+\end{syntax}
+which initially is defined to be \markup[nomk]{index}. The
+>>\texttt{idxit}<< control key redefines it to be
+\markup[nomk]{itindex}, which is
+\begin{verbatim}
+\newcommand\itindex[1]{\index{#1|textitindex}}
+\end{verbatim}
+where \markup[nomk]{textitindex} is just
+\markup[nomk]{textit}. Similar for >>\texttt{idxbf}<<.
+
+Let us now create a category key for \LaTeX\ packages.
+\begin{verbatim}
+\felineKeyGenerator{sty}%
+  {for registering package names}%
+  {\felineWriteInMargin{\foreignlanguage{english}{#1}}}%
+  {\felineIndexCmd{#1 (package)@#1 (package)}%
+    \felineIndexCmd{packages!#1}}%
+  {\foreignlanguage{english}{\texttt{\hyphenchar\font=`\-#1}}}
+\end{verbatim}
+The rather odd last line is to ensure that the package name is written
+under English hyphenation rules, and the
+>>\verb+\hyphenchar\font=`\-+<< is to ensure that we can get
+hyphenation in the typewriter font. As you can see we create two index
+entries, one for the name it self (marking it as the name of a
+package) and one as a sub item to a list of mentioned packages.
+
+Here is another key for mathematical symbols
+\begin{verbatim}
+\def\felinenameuse#1{\@nameuse{#1}}
+\felineKeyGenerator{msym}%
+  {mathematical symbols}
+  {\felineWriteInMargin{\cs{#1} \textnormal{($\@nameuse{#1}$)}}}%
+  {\felineIndexCmd{#1@\protect\css{#1} ($\protect\felinenameuse{#1}$)}}%
+  {\cs{#1}}
+\end{verbatim}
+\verb+\@nameuse+ is used to transform the name of the macro into the
+macro it self (for those that didn't already know
+\verb+\@nameuse+). The shortcut \markup[nomk]{felinenameuse} is used
+here because \verb+\@nameuse+ might not be permissible in the index
+(because of the >>\texttt{@}<<.
+
+You can place these keys either in your preamble or in
+>>\path{dlfltxbmarkup.cfg}<< which will be auto loaded if found. If
+you have used the package option >>\texttt{loadsampleconfig}<<
+then >>\texttt{dlfltxbmarkup-sample.cfg}<< will be loaded at the very end of
+the package, i.e. \emph{after} >>\texttt{dlfltxbmarkup-sample.cfg}<<.
+
+The default category key to be used by \markup[nomk]{markup} is
+controlled by
+\begin{syntax}
+  \markup{felineStandardKey}
+\end{syntax}
+Just redefine it to be the key you want. Notice that by using
+>>\texttt{loadsampleconfig}<< the default key is set to
+>>\texttt{macro}<<. 
+
+\section{The descriptions}
+\label{sec:descriptions}
+
+For a long project like \cite{ltxb} the list of category keys may grow
+quite big, and one might loose track of the keys and what they should
+be used for. Under normal use of the this package, the description is
+ignored. But internally in \markup[nomk]{felineKeyGenerator} we call
+the macro \markup{felineMarkupDescription} with all five arguments. By
+default it does nothing. But the user can define it to do something
+before loading the package.
+
+Located with this manual you should find the file
+>>dlfltxbmarkup-showkeys.tex<< which will print a new document showing
+they keys and their description. If you move a \texttt{\%} in that
+file you will get a list of the keys used for \cite{ltxb}.
+
+
+\bibliographystyle{plainnat}
+\bibliography{package_doc}
+
+
+\end{document}
+
+
+%%% Local Variables: 
+%%% mode: latex
+%%% TeX-master: t
+%%% End: 
+
-- 
cgit v1.2.3

