From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/fncylab/fncylab-example.tex | 78 +++++++++++++++++++++++ macros/latex/contrib/fncylab/fncylab.pdf | Bin 0 -> 210727 bytes macros/latex/contrib/fncylab/fncylab.sty | 61 ++++++++++++++++++ macros/latex/contrib/fncylab/fncylab.tex | 64 +++++++++++++++++++ 4 files changed, 203 insertions(+) create mode 100644 macros/latex/contrib/fncylab/fncylab-example.tex create mode 100644 macros/latex/contrib/fncylab/fncylab.pdf create mode 100644 macros/latex/contrib/fncylab/fncylab.sty create mode 100644 macros/latex/contrib/fncylab/fncylab.tex (limited to 'macros/latex/contrib/fncylab') diff --git a/macros/latex/contrib/fncylab/fncylab-example.tex b/macros/latex/contrib/fncylab/fncylab-example.tex new file mode 100644 index 0000000000..97f9d4173c --- /dev/null +++ b/macros/latex/contrib/fncylab/fncylab-example.tex @@ -0,0 +1,78 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% small sample file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} +% +% a brief demonstration of the use of fncylab +% +\usepackage{fncylab,enumerate} +\begin{document} +% +% outer level lists (such as enumerate) use counter enumi for their +% list tags. +\begin{enumerate}[(i)] +\item first item, defining a non-fancy label \label{first} +% +% that label was defined to look otherwise than it was printed for the +% item: +\item second item (see also item~\ref{first}) +% +% redefine label formats for this list's labels: +\labelformat{enumi}{(#1)} +% +% and label the another item in a different way: +\item third item, defining a fancy label \label{third} +% +% redefine label formats for this list's labels again: +\labelformat{enumi}{item~(#1)} +% +% we now see that the label has for item three has been defined +% differently, and that for item four differently again. note the +% reference starting a new sentence. +\item fourth item, defining a fancy label in a different format (see + also item~\ref{third}). \Ref{fourth} shows how a sentence may start + with reference to a fancy label; note that it's the \emph{label} + that's fancy, so the second change to the label format only affects + the labels defined after it. \label{fourth} +\end{enumerate} +\end{document} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% small sample file +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass{article} +% +% a brief demonstration of the use of fncylab +% +\usepackage{fncylab,enumerate} +\begin{document} +% +% outer level lists (such as enumerate) use counter enumi for their +% list tags. +\begin{enumerate}[(i)] +\item first item, defining a non-fancy label \label{first} +% +% that label was defined to look otherwise than it was printed for the +% item: +\item second item (see also item~\ref{first}) +% +% redefine label formats for this list's labels: +\labelformat{enumi}{(#1)} +% +% and label the another item in a different way: +\item third item, defining a fancy label \label{third} +% +% redefine label formats for this list's labels again: +\labelformat{enumi}{item~(#1)} +% +% we now see that the label has for item three has been defined +% differently, and that for item four differently again. note the +% reference starting a new sentence. +\item fourth item, defining a fancy label in a different format (see + also item~\ref{third}). \Ref{fourth} shows how a sentence may start + with reference to a fancy label; note that it's the \emph{label} + that's fancy, so the second change to the label format only affects + the labels defined after it. \label{fourth} +\end{enumerate} +\end{document} diff --git a/macros/latex/contrib/fncylab/fncylab.pdf b/macros/latex/contrib/fncylab/fncylab.pdf new file mode 100644 index 0000000000..93d495f05f Binary files /dev/null and b/macros/latex/contrib/fncylab/fncylab.pdf differ diff --git a/macros/latex/contrib/fncylab/fncylab.sty b/macros/latex/contrib/fncylab/fncylab.sty new file mode 100644 index 0000000000..b28439bcec --- /dev/null +++ b/macros/latex/contrib/fncylab/fncylab.sty @@ -0,0 +1,61 @@ +% FNCYLAB.STY v1.0 +% Copyright 2000,2003 Robin Fairbairns (robin.fairbairns@cl.cam.ac.uk) +% +% This program can redistributed and/or modified under the terms +% of the LaTeX Project Public License; either version 1.2 of the +% license, or (at your option) any later version. +% +% See http://www.latex-project.org/lppl.txt for the latest version +% of the license. +% +% This package provides support for arbitrary structuring of the way +% label references look. The \labelformat command takes two +% arguments: +% #1 the counter that will define the label (e.g., section, figure, +% enumi, etc.) +% #2 the definition of how the label will be formatted: in this +% argument, #1 (*not* ##1) substitutes the `raw' value of the +% thing which is the source of the label. +% +% The package makes use of a built-in LaTeX facility (which actually +% needs a bit of patching before it's usable); this allows the precise +% layout of the references to labels generated from any LaTeX counter +% to be altered. Note that the way in which the counter itself is +% represented in references depends on \the -- it's the same +% as the way the counter gets printed. +% +% example +% \labelformat{section}{section #1} +% ... +% \section{The Blah Field}\label{blah} +% ... +% ... As we saw above in~\ref{blah} ... +% +% will typeset as +% ... As we saw above in section 3 ... +% +% For references at the start of a sentence, the package defines a +% command \Ref, which is used as follows: +% ... \Ref{blah} shows us that ... +% +% which will typeset as +% ... Section 3 shows us that ... + +% this check and redefinition is suggested in the latex source +% (ltxref.dtx) +\CheckCommand*\refstepcounter[1]{\stepcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\endcsname\csname the#1\endcsname}% +} +\renewcommand*\refstepcounter[1]{\stepcounter{#1}% + \protected@edef\@currentlabel + {\csname p@#1\expandafter\endcsname\csname the#1\endcsname}% +} + +\def\labelformat#1{\expandafter\def\csname p@#1\endcsname##1} + +\DeclareRobustCommand\Ref[1]{\protected@edef\@tempa{\ref{#1}}% + \expandafter\MakeUppercase\@tempa +} + +\endinput diff --git a/macros/latex/contrib/fncylab/fncylab.tex b/macros/latex/contrib/fncylab/fncylab.tex new file mode 100644 index 0000000000..1faab4c28f --- /dev/null +++ b/macros/latex/contrib/fncylab/fncylab.tex @@ -0,0 +1,64 @@ +\documentclass[a4paper]{article} +\usepackage[a4paper]{geometry} +\usepackage{miscdoc} +\usepackage[scaled=0.85]{luximono} +\begin{document} +\title{The \Package{fncylab} package} +\author{Robin Fairbairns\thanks{Email: + \emph{robin.fairbairns@cl.cam.ac.uk}}} +\date{2003-08-13, version 1.0} +\maketitle + +The package provides support for arbitrary structuring of the way +label references look. The command \cmdinvoke*{labelformat}{ctr}{defn} +specifies the structure of a label: +\begin{description} +\item[\emph{\texttt{ctr}}] the counter that will define the label + (e.g., \texttt{section}, \texttt{figure}, \texttt{enumi} for outer + level list label references, etc.) +\item[\emph{\texttt{defn}}] the definition of how the counter will be + formatted in a reference. In this argument, \texttt{\#1} + (\emph{not} \texttt{\#\#1} as one might expect) substitutes the + `raw' value of the thing which is the source of the label. +\end{description} + +The package makes use of a built-in LaTeX facility (which actually +needs a bit of patching before it's usable); this allows the precise +layout of the references to labels generated from any LaTeX counter +to be altered. Note that the way in which the counter itself is +represented in references depends on \cs{the\meta{counter}}\,---\,it's +the same as the way the counter gets printed. + +\section{An example} + +The \LaTeX{} code: +\begin{quote} +\begin{verbatim} +\labelformat{section}{section #1} +... +\section{The Blah Field}\label{blah} +... +... As we saw above in~\ref{blah} ... +\end{verbatim} +\end{quote} +will typeset its last line as +\begin{quote} + \dots\@ As we saw above in section 3 \dots +\end{quote} + +For references at the start of a sentence, the package defines a +command \cs{Ref}, which is used as one might expect: +\begin{quote} +\begin{verbatim} +... \Ref{blah} shows us that ... +\end{verbatim} +\end{quote} +which will typeset as +\begin{quote} + \dots\@ Section 3 shows us that \dots +\end{quote} + +A demonstration of \cs{labelformat}, using the \Package{enumerate} +package, may be found in the file \texttt{fncylab-example.tex}, which +is part of the distribution. +\end{document} -- cgit v1.2.3