summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-05-19 16:06:11 +0000
committerKarl Berry <karl@freefriends.org>2007-05-19 16:06:11 +0000
commitc11a0850e29ea8d9ffdb5696efc582fad8e57793 (patch)
tree300bd861c8a6e10ac06031fd70f8abd1ba073efd /Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex
parent71199f0d5b9772184cc792bfe50790505a6180cb (diff)
new latex bundle dlfltxb (17may07)
git-svn-id: svn://tug.org/texlive/trunk@4314 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex')
-rw-r--r--Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex478
1 files changed, 478 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex b/Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex
new file mode 100644
index 00000000000..78527b70039
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/dlfltxb/dlfltxbcodetips.tex
@@ -0,0 +1,478 @@
+\RequirePackage{etex}
+\documentclass[11pt,oneside,a4paper,oldfontcommands,danish,english,article]{memoir}
+\usepackage[latin1]{inputenc}
+\usepackage{babel}
+\usepackage[T1]{fontenc}
+\usepackage[widespace]{fourier}
+
+\setlxvchars[\normalfont]
+
+\settypeblocksize{*}{1.3\lxvchars}{1.618}
+
+\setlrmargins{*}{*}{0.7}
+\setulmargins{*}{*}{1}
+\setlength\marginparwidth{4cm}
+
+\checkandfixthelayout
+
+
+\hfuzz=30pt
+
+
+\usepackage{color}
+\usepackage[colorlinks,breaklinks]{hyperref}
+\definecolor{linkcolour}{rgb}{0,0.2,0.6}
+\definecolor{citecolour}{rgb}{0,0.6,0.2}
+\definecolor{urlcolour} {rgb}{0.8,0,0.8}
+
+\hypersetup{
+ pdftitle={The dlfltxbcodetips 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}
+
+\clubpenalty=300
+\widowpenalty=300
+
+\usepackage{microtype}
+
+\usepackage{amsmath,amssymb}
+\usepackage[amsmath,thmmarks]{ntheorem}
+\usepackage[round]{natbib}
+
+\usepackage{dlfltxbcodetips}
+\usepackage[loadsampleconfig]{dlfltxbmarkup}
+\renewcommand\felineMarginAdjustment{\RaggedLeft}
+
+
+
+\usepackage{dlfltxbmisc}
+\usepackage{graphicx}
+
+\chapterstyle{article}
+
+\setsecheadstyle{\normalfont\large\bfseries\raggedright}
+
+
+\reversemarginpar
+\reversesidepartrue
+
+\definecolor{shadecolor}{gray}{0.8}
+\theorembodyfont{\normalfont}
+\theoremseparator{.}
+\NewShadedTheorem{caveat}{Caveat}
+
+
+% until dlfltxbsd is released we will have to use the following
+% construction
+
+\usepackage{fancyvrb}
+\fvset{fontsize=\footnotesize}
+
+\newcommand\verbfile{\jobname.vrb}
+\newenvironment{sourcedisplay}{%
+\par\vskip0.5\baselineskip\noindent
+\VerbatimOut{\verbfile}}{%
+\endVerbatimOut%
+\noindent
+\begin{minipage}{0.48\linewidth}
+\VerbatimInput{\verbfile}
+\end{minipage}
+\hfill
+\begingroup%
+\begin{minipage}{0.48\linewidth}
+\begin{framed}
+\input{\verbfile}
+\end{framed}
+\end{minipage}
+\endgroup\vskip0.5\baselineskip}
+
+
+\newenvironment{Sourcedisplay}{%
+\par\vskip0.5\baselineskip\noindent
+\VerbatimOut{\verbfile}}{%
+\endVerbatimOut%
+\noindent
+\begin{minipage}{\linewidth}
+\VerbatimInput{\verbfile}
+\end{minipage}
+\par\bigskip\noindent
+\begin{minipage}{\linewidth}
+\begin{framed}
+\input{\verbfile}
+\end{framed}
+\end{minipage}
+\vskip0.5\baselineskip}
+
+
+\pagestyle{plain}
+
+\begin{document}
+
+\title{Code tips from ``Introduktion til \LaTeX''\\{\normalsize Or just the
+ \textsf{\jobname} package}}
+\author{Lars Madsen\thanks{Web:
+ \url{http://home.imf.au.dk/daleif}\qquad Email: \url{daleif@imf.au.dk}}}
+\maketitle
+
+\tableofcontents*
+
+\setsecnumdepth{part}
+
+\chapter{Introduction}
+\label{cha:introduction}
+
+In my \LaTeX\ book \citep{ltxb} we present some macros that might be
+helpful to the readers. Some of these extra macros might be useful to
+others as well so these macros have been included in the
+\markup[nomk,sty]{dlfltxbcodetips} package. The package is published on \textsc{ctan} and the
+package is released under the normal lppl license.
+
+The >>\texttt{dlfltxb}<< part of the name simply stands for >>daleif<<
+and \LaTeX\ book. The \markup[nomk,sty]{dlfltxbcodetips} package is the first
+package in the >>\texttt{dlfltxb}<<-bundle which, over time, will
+contain most of the home made packages that I use to create my book
+(though not the book source itself).
+
+Some of the macros might be better of included in the
+\markup[nomk,sty]{mathtools} package by Morten Høgholm, but he is quite busy
+elsewhere at the moment. over time some of the macros might be
+imcluded in
+
+\newpage
+\noindent
+\emph{Note:} The macro \verb+\dbx+ will often be used to simulate some
+text or mathematical material.
+
+\setsecnumdepth{section}
+
+\chapter{Extra symbols}
+\label{cha:extra-symbols}
+
+\section{\texorpdfstring{A big version of \cs{times}}{A big version of
+ \textbackslash times}}
+\label{sec:big-version-cstimes}
+
+
+
+A few extra symbols have been created. First of is \markup{bigtimes}
+which is a large operator version of \markup[nomk]{times}, but without
+having to load special fonts.
+\begin{sourcedisplay}
+$\bigtimes_{n=1}^k A_n$
+\[ \bigtimes_{n=1}^k A_n \]
+\end{sourcedisplay}
+
+\section{Negated up- and downarrows}
+\label{sec:negat-up-down}
+
+The package creates \markup{nuparrow} and \markup{ndownarrow} by
+rotating and reflecting \markup[nomk]{nrightarrow} and
+\markup[nomk]{nleftarrow}
+respectively.
+\begin{sourcedisplay}
+$ A \nuparrow B$ \qquad
+$ B \ndownarrow C$
+\end{sourcedisplay}
+The macros require the use of the \markup[nomk,sty]{graphicx} package,
+which is not auto loaded.
+
+\chapter{Fun with theorems}
+\label{cha:fun-with-theorems}
+
+\section{Shaded theorems with the ntheorem package}
+\label{sec:shaded-theorems-with}
+
+Even though we have the \markup[nomk,sty]{shadedthm} package, we can
+easily do better if we are already using the
+\markup[nomk,sty]{ntheorem} package. Simply use
+\begin{syntax}
+ \markup{NewShadedTheorem}
+\end{syntax}
+It has exactly the same syntax as the ordinary
+\markup[nomk]{newtheorem}. Requirements: the
+\markup[nomk,sty]{framed}, \markup[nomk,sty]{ntheorem},
+(\texttt{x})\markup[nomk,sty]{color} packages and the definition of
+the >>\texttt{shadecolor}<< (required by the \markup[nomk,sty]{framed} package).
+\begin{sourcedisplay}
+\theoremheaderfont{\bfseries}
+\theoremseparator{.}
+\NewShadedTheorem{thm}{Theorem}[chapter]
+\NewShadedTheorem{lemma}[thm]{Lemma}
+\newtheorem{prop}[thm]{Proposition}
+\begin{thm}
+ normal test.
+\end{thm}
+\begin{thm*}
+ un-numbered.
+\end{thm*}
+\begin{lemma}
+ a lemma.
+\end{lemma}
+\begin{prop}
+ a theorem with no background.
+\end{prop}
+\end{sourcedisplay}
+In contrast to \markup[nomk,sty]{ntheorem}, the $*$-ed version created
+by \markup[nomk]{NewShadedTheorem} is a version that does not print a
+number.
+
+\section{Theorems that start with a list}
+\label{sec:theorems-that-start}
+
+A theorem that starts with a list looks odd because the first item
+comes directly after the heading.\footnote{Depends on the
+ configuration.}
+\makeatletter
+\let\thm\thm@inner
+\let\endthm\endthm@inner
+\makeatother
+\begin{sourcedisplay}
+\begin{thm}
+ \begin{enumerate}
+ \item \dbx[2cm]
+ \item \dbx[2cm]
+ \item \dbx[2cm]
+ \end{enumerate}
+\end{thm}
+\end{sourcedisplay}
+The macro \markup{InsertTheoremBreak} helps.
+\begin{sourcedisplay}
+\begin{thm}
+ \InsertTheoremBreak
+ \begin{enumerate}
+ \item \dbx[2cm]
+ \item \dbx[2cm]
+ \item \dbx[2cm]
+ \end{enumerate}
+\end{thm}
+\begin{thm}
+ \InsertTheoremBreak*
+ \begin{enumerate}
+ \item \dbx[2cm]
+ \item \dbx[2cm]
+ \item \dbx[2cm]
+ \end{enumerate}
+\end{thm}
+\end{sourcedisplay}
+\noindent The un-stared version remove the space above the list, the
+stared version does not.
+
+\begin{caveat*}
+ If the theorem comes too close to a page break it is quite likely
+ that the page break will end up between the theorem header and the
+ start of the list.
+\end{caveat*}
+
+\chapter{Various features regarding alignment}
+\label{cha:vari-feat-regard}
+
+\section{Arrow between lines}
+\label{sec:arrow-between-lines}
+
+Sometimes lines in an alignment are related in the sense of \emph{from
+which it follows}, usually indicated by $\Rightarrow$. We would like
+to place this between the lines in a nice way. The following macro is
+due to Morten Høgholm.
+\begin{syntax}
+ \markup{ArrowBetweenLines}\oarg{arrow}
+ \markup{ArrowBetweenLines*}\oarg{arrow}
+\end{syntax}
+Simply hold back one column of alignment for the arrow:
+\begin{sourcedisplay}
+\begin{alignat}{2}
+ && f(x) & = \dbx[2cm] \\
+ \ArrowBetweenLines
+ && g(x) & = - \dbx[2cm] \\
+ \ArrowBetweenLines[\Downarrow]
+ && h(x) & = 0
+\end{alignat}
+\end{sourcedisplay}
+Note the height of the arrow line and that the line automatically does
+not contain equation numbers. The stared version can be used to place
+the arrows on the right. Though several alignment columns on each line
+might become a problem.
+\begin{sourcedisplay}
+\begin{alignat}{2}
+ f(x) & = \dbx[2cm] \\
+ \ArrowBetweenLines*
+ g(x) & = - \dbx[2cm] \\
+ \ArrowBetweenLines*[\Downarrow]
+ h(x) & = 0
+\end{alignat}
+\end{sourcedisplay}
+
+
+\section{Switch dead space}
+\label{sec:switch-dead-space}
+
+The standard \markup[nomk,env]{equation} environment has the feature
+that if the text before it is short and the formula likewise, then the
+drop between the preceding text and the formula will be
+\markup[length,nomk]{abovedisplayshortskip} instead of the usual
+\markup[length,nomk]{abovedisplayskip}. The macros from the
+\markup[nomk,sty]{amsmath} package does not have this feature (except
+\markup[nomk,env]{equation*}).
+\begin{sourcedisplay}
+text
+\[ a=b \]
+text
+\begin{align*}
+ a=b
+\end{align*}
+\end{sourcedisplay}
+The macro \markup{SwapDeadSpace} can simulate this feature
+\begin{sourcedisplay}
+text
+\[ a=b \]
+text
+\begin{align*}
+ \SwapDeadSpace
+ a=b
+\end{align*}
+\end{sourcedisplay}
+
+\section{Left alignment}
+\label{sec:left-alignment}
+
+In \cite{swanson}, Ellen Swanson presents some recommendations
+regarding how to arrange displayed formulas. One thing she recommends
+is alignment to the left and with all subsequent lines indented by
+2\,em.
+\begin{align*}
+\malign[-2pt]{2}
+ &\dbx[5cm]=\dbx[4cm]\\
+ &\qquad{}=\dbx[6cm]\\
+ &\qquad{}=\dbx[5cm]\,.
+\end{align*}
+or
+\begin{align*}
+\malign[-2pt]{2}
+ &\dbx[8cm]\\
+ &\qquad{}=\dbx[4cm]\\
+ &\qquad{}=\dbx[6cm]\,.
+\end{align*}
+or
+\begin{align*}
+\malign[-2pt]{2}
+ &\dbx[5cm]=\dbx[4cm]\\
+ &\qquad{}+\dbx[6cm]\\
+ &\qquad{}\times\dbx[5cm]\,.
+\end{align*}
+and
+\begin{align*}
+\malign[-2pt]{2}
+ &\dbx[8cm]\\
+ &\qquad{}-\dbx[4cm]\\
+ &\qquad{}\otimes\dbx[6cm]\,.
+\end{align*}
+But having to do all those indentations by hand quickly becomes quite
+dull. Instead, align everything to the left, and pull back the first
+line. This is what the following macro does.
+\begin{syntax}
+ \markup{PullBack}\oarg{number}
+\end{syntax}
+The optional argument is a number (without unit, em will be used)
+indicating the amount of indentation. 2\,em is the default. Now simply
+use \markup[nomk]{PullBack} instead of the >>\texttt{\&}<< on the
+first line.
+\begin{sourcedisplay}
+\begin{align*}
+ \PullBack f(x) + g(x) + \dbx[4cm] \\
+ & = \dbx[5cm] \\
+ & = \dbx[5cm]
+\end{align*}
+\end{sourcedisplay}
+The optional argument is usually used whenever the alignment is moved
+to the right of the equal signs.
+\begin{sourcedisplay}
+\begin{align*}
+ \PullBack[3] f(x) + g(x) + \dbx[4cm] \\
+ ={} & \dbx[5cm] \\
+ & + \dbx[5cm]
+\end{align*}
+\end{sourcedisplay}
+
+\section{Alignment with material encased in delimiters on different lines}
+\label{sec:alignm-with-mater}
+
+Swanson also recommends that if one has material encased with
+delimiters and the delimiters are on different lines, then if space
+permits, the material should be indented such that the relationship is
+evident. Usually we would use a \markup[nomk]{phantom} to do this,
+such as in the next example.
+\begin{sourcedisplay}
+\begin{align*}
+ \dbx[5mm]&= \dbx[5mm]\bigl[{} \dbx[3cm]\\
+ &\phantom{=\dbx[5mm]\bigl[{}}
+ \times \dbx[3cm]{}\\
+ &\phantom{=\dbx[5mm]\bigl[{}}
+ - \dbx[3cm]{}\bigr]\\
+ &=\dbx[3cm]
+\end{align*}
+\end{sourcedisplay}
+The problem with this is that it gets tedious and prone to human
+error. How about instead maintaining a stack of material determining
+the indentation together with tools to reset, add to and pop the
+stack. For this you can use the following macros
+\begin{syntax}
+ \markup{MathIndent}
+ \markup{SetMathIndent}\marg{math code}
+ \markup{AddtoMathIndent}\marg{math code}
+ \markup{PopMathIndent}
+ \markup{PopMathIndent*}
+\end{syntax}
+\markup[nomk]{MathIndent} is used to set a space corresponding to the
+current indentation saved on the stack. \markup[nomk]{SetMthIndent}
+takes its argument and saves it on the stack, calculates the current
+math indent length and ends by typesetting the given argument, i.e. no
+need to copy anything. Similarly the \markup[nomk]{AddtoMathIndent}
+adds it argument to the stack and adds the length of it to the saved
+math indent. So instead of copying code, now we simply encase it with
+either \markup[nomk]{SetMathIndent} (for the initialisation) or
+\markup[nomk]{AddtoMathIndent}. \markup[nomk]{PopMathIndent} is
+similar to \markup[nomk]{MathIndent}, in that it sets a blank space
+corresponding to the contents of the stack after we have popped off
+the top item. \markup[nomk]{PopMathIndent*} pops the stack but does
+\emph{not} set any space.
+
+
+Now, an illustrative example might be in order:
+\begin{Sourcedisplay}
+\begin{align*}
+\dbx ={} & \SetMathIndent{\dbx[1cm] \Bigl[} \dbx[6cm] \\
+ & \MathIndent + \dbx[7cm] \\
+ & \MathIndent
+ \AddtoMathIndent{{} + \dbx \Bigl\{}
+ \AddtoMathIndent{\dbx[2cm] + \Bigl(} \dbx[4cm] \\
+ &
+ \MathIndent + \dbx[4cm] \Bigr) \\
+ & \PopMathIndent + \dbx[6cm] \Bigr\} \\
+ & \PopMathIndent + \dbx[6cm] \Bigr]
+\end{align*}
+\end{Sourcedisplay}
+Notice the dual use of \markup[nomk]{AddtoMathIndent} such that we can
+return to the indentation set by the >>\texttt{\{}<<.
+
+Of course, non-balanced \markup[nomk]{left}--\markup[nomk]{right}
+constructions may not be used.
+
+\bibliographystyle{plainnat}
+\bibliography{package_doc}
+
+
+
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% TeX-source-specials-mode: t
+%%% TeX-PDF-mode: nil
+%%% End:
+