summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hhtensor/hhtensor.dtx
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/hhtensor/hhtensor.dtx
Initial commit
Diffstat (limited to 'macros/latex/contrib/hhtensor/hhtensor.dtx')
-rw-r--r--macros/latex/contrib/hhtensor/hhtensor.dtx293
1 files changed, 293 insertions, 0 deletions
diff --git a/macros/latex/contrib/hhtensor/hhtensor.dtx b/macros/latex/contrib/hhtensor/hhtensor.dtx
new file mode 100644
index 0000000000..c4280433b7
--- /dev/null
+++ b/macros/latex/contrib/hhtensor/hhtensor.dtx
@@ -0,0 +1,293 @@
+% \iffalse meta comment
+% File: hhtensor.dtx Copyright (C) 2003-2011 Harald Harders
+% \fi
+%
+% \iffalse
+%
+%<*driver>
+\listfiles
+\documentclass[ngerman,english,a4paper]{ltxdoc}
+\usepackage[T1]{fontenc}
+%\usepackage{longtable}
+\usepackage{mathcomp}
+\usepackage{babel}
+\IfFileExists{hhtensor.sty}{%
+ \usepackage{hhtensor}
+}{%
+ \GenericWarning{hhtensor.dtx}{Package file hhtensor.sty not found
+ (Documentation will be messed up!^^J^^A
+ Generate hhtensor.sty by (La)TeXing hhtensor.ins, process
+ hhtensor.dtx again)^^J}\stop
+}
+\GetFileInfo{hhtensor.sty}
+\title{The \texttt{hhtensor} package\thanks{This file has version
+ \fileversion\ last revised \filedate.}}
+\author{Harald Harders\\\texttt{harald.harders@gmx.de}}
+\date{File Date \filedate, Printed \today}
+\newlength{\tempdima}%
+\makeatletter
+\renewenvironment{table}[1][]{%
+ \@float{table}[#1]%
+ \centering%
+ \setlength{\tempdima}{\abovecaptionskip}%
+ \setlength{\abovecaptionskip}{\belowcaptionskip}%
+ \setlength{\belowcaptionskip}{\tempdima}%
+ }{%
+\end@float
+}
+\def\meta@font@select{\normalfont\itshape}
+%%
+\DeclareRobustCommand*\bvec[1]{\ensuremath{\boldsymbol{#1}}}
+\DeclareRobustCommand*\bmatr[1]{\ensuremath{\boldsymbol{#1}}}
+\DeclareRobustCommand*\btens[2]{\ensuremath{\boldsymbol{#1}}}
+\DeclareRobustCommand*\uvec[1]{\ushort{#1}}
+\DeclareRobustCommand*\umatr[1]{\ushortd{#1}}
+\DeclareRobustCommand*\utens[2]{%
+ \begingroup
+ \setlength{\arraycolsep}{0pt}
+ \begin{array}[t]{c}%
+ #1 \\[-2.05ex]
+ {\scriptstyle \sim} \\[-2.1ex]
+ {\scriptscriptstyle #2}\\[-0.7ex]
+ \end{array}%
+ \endgroup
+}
+\makeatother
+%%
+\EnableCrossrefs
+\CodelineIndex
+\DoNotIndex{\def,\edef,\let,\newcommand,\newenvironment,\newcounter}
+\DoNotIndex{\setcounter,\space,\if,\else,\fi,\empty,\@empty,\ifx,\fi}
+\DoNotIndex{\ifnum,\fi,\expandafter,\csname,\endcsname,\the}
+\DoNotIndex{\MessageBreak,\message,\newlength,\newif,\xdef,\newcount}
+\DoNotIndex{\begingroup,\endgroup,\,,\@tempcnta,\@tempdima,\advance}
+\DoNotIndex{\ensuremath,\filedate,\fileversion,\docdate}
+\DoNotIndex{\mathit,\mathrm,\mathsf,\nprt@tmp,\nprt@tmpnum,\relax}
+\DoNotIndex{\protect,\renewcommand,\setlength,\settowidth,\stepcounter}
+\DoNotIndex{\string,\DeclareRobustCommand,\\}
+\CodelineNumbered
+\RecordChanges
+%\CheckSum{1016}
+\begin{document}
+ \DocInput{hhtensor.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \changes{0.61}{2011/12/29}{Avoid usage of \cs{fileversion} etc.}%
+% \changes{0.6}{2003/10/15}{Total new implementation}%
+%
+% \maketitle
+% \begin{abstract}
+% \noindent
+% This package provides commands for vectors, matrices, and tensors
+% with different styles (arrows as the \LaTeX\ default, underlined,
+% and bold).
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section*{Copyright}
+%
+% Copyright 2003--2011 Harald Harders.
+%
+% This program can be 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 any later version.
+%
+%
+% \section{Load the package}
+%
+% To use this package place
+% \begin{quote}
+% |\usepackage|\oarg{style}\marg{hhtensor}
+% \end{quote}
+% in the preamble of your document.
+% The \meta{style} is |arrow|, |bold|, or |uline| for arrow style,
+% bold symbols, resp.\ underlined symbols.
+% Default is |arrow|.
+%
+%
+% \section{Usage}
+%
+% \DescribeMacro{\vec}
+% Vectors are printed as usual using the \cs{vec\marg{symbol}}
+% command.
+% Depending on the style, they are printed $\vec{\alpha}$,
+% $\bvec{\alpha}$, resp.\ $\uvec{\alpha}$.
+%
+% \DescribeMacro{\matr}
+% Matrices are printed using \cs{matr\marg{symbol}}: $\matr{\alpha}$,
+% $\bmatr{\alpha}$, resp.\ $\umatr{\alpha}$.
+%
+% \DescribeMacro{\tens}
+% Tensors are a little bit different.
+% They take two arguments while the first one is the symbol, while the
+% second is the step: \cs{tens\marg{symbol}\marg{step}}.
+% This leads to $\tens{\alpha}{4}$, $\btens{\alpha}{4}$, resp.\
+% $\utens{\alpha}{4}$.
+%
+% In the bold style, it is not distinguished between vectors,
+% matrices, and tensors.
+% I would like to use upright symbols but then you cannot use all
+% symbols because there is no full upright bold math alphabet.
+%
+% \DescribeMacro{\dcdot}
+% The \cs{dcdot} command produces a double dot for double scalar
+% products, e.g.,
+% $\matr{\sigma}=\tens{A}{4}\dcdot\matr{\varepsilon}$.
+%
+% \DescribeMacro{\trans}
+% \cs{trans} produces a transponed sign: $\matr{A}\trans = \matr{B}$.
+%
+%
+% \StopEventually{\PrintChanges \PrintIndex}
+%
+% \section{The implementation}
+% \iffalse
+%<*package>
+% \fi
+% Heading of the package:
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{hhtensor}
+ [2011/12/29 v0.61 Print vectors and tensors]
+% \end{macrocode}
+% |ushort| underlines with shorter lines than \cs{underline}.
+% \begin{macrocode}
+\RequirePackage{ushort}
+% \end{macrocode}
+% |amsmath| for bold symbols.
+% \begin{macrocode}
+\RequirePackage{amsmath}
+% \end{macrocode}
+% Booleans to decide which version has to be used.
+% \begin{macrocode}
+\newif\iftensor@bold
+\newif\iftensor@uline
+% \end{macrocode}
+% Package options that set the booleans.
+% \begin{macrocode}
+\DeclareOption{bold}{\tensor@boldtrue\tensor@ulinefalse}
+\DeclareOption{uline}{\tensor@boldfalse\tensor@ulinetrue}
+\DeclareOption{arrow}{\tensor@boldfalse\tensor@ulinefalse}
+% \end{macrocode}
+% Default are arrows, as in standard \LaTeX.
+% \begin{macrocode}
+\ExecuteOptions{arrow}
+\ProcessOptions\relax
+% \end{macrocode}
+% \begin{macro}{\origvec}
+% Save the original \cs{vec} command.
+% \begin{macrocode}
+\newcommand\origvec{}
+\let\origvec=\vec
+% \end{macrocode}
+% \end{macro}
+% If bold vectors and tensors are requested, execute this code.
+% \begin{macrocode}
+\iftensor@bold
+% \end{macrocode}
+% \begin{macro}{\vec}
+% Redefine the \cs{vec} command.
+% \begin{macrocode}
+ \DeclareRobustCommand*\vec[1]{\ensuremath{\boldsymbol{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\matr}
+% Defined the \cs{matr} command.
+% \begin{macrocode}
+ \DeclareRobustCommand*\matr[1]{\ensuremath{\boldsymbol{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tens}
+% Defined the \cs{tens} command.
+% \begin{macrocode}
+ \DeclareRobustCommand*\tens[2]{\ensuremath{\boldsymbol{#1}}}
+% \end{macrocode}
+% \end{macro}
+% Underlined vectors?
+% \begin{macrocode}
+\else
+ \iftensor@uline
+% \end{macrocode}
+% \begin{macro}{\vec}
+% Vectors underlined.
+% \begin{macrocode}
+ \DeclareRobustCommand*\vec[1]{\ushort{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\matr}
+% Matrices double underlined.
+% \begin{macrocode}
+ \DeclareRobustCommand*\matr[1]{\ushortd{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tens}
+% Tensors with number of step below.
+% \begin{macrocode}
+ \DeclareRobustCommand*\tens[2]{%
+ \begingroup
+ \setlength{\arraycolsep}{0pt}
+ \begin{array}[t]{c}%
+ #1 \\[-2.05ex]
+ {\scriptstyle \sim} \\[-2.1ex]
+ {\scriptscriptstyle #2}\\[-0.7ex]
+ \end{array}%
+ \endgroup
+ }
+% \end{macrocode}
+% \end{macro}
+% Vectors with an arrow.
+% Since this is the default, the \cs{vec} command has not to be
+% redefined.
+% \begin{macrocode}
+ \else
+% \end{macrocode}
+% \begin{macro}{\matr}
+% Matrix.
+% \begin{macrocode}
+ \DeclareRobustCommand*\matr[1]{\ensuremath{\vec{\vec{#1}}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\tens}
+% Tensors with number of step below.
+% That does not fit well to the arrow styles, but I don't know a
+% better solution.
+% Does somebody have one?
+% \begin{macrocode}
+ \DeclareRobustCommand*\tens[2]{%
+ \begingroup
+ \setlength{\arraycolsep}{0pt}
+ \begin{array}[t]{c}%
+ #1 \\[-2.05ex]
+ {\scriptstyle \sim} \\[-2.1ex]
+ {\scriptscriptstyle #2}\\[-0.7ex]
+ \end{array}%
+ \endgroup
+ }
+% \end{macrocode}
+% \end{macro}
+% \begin{macrocode}
+ \fi
+\fi
+% \end{macrocode}
+% \begin{macro}{\dcdot}
+% Double scalar product.
+% \begin{macrocode}
+\DeclareRobustCommand*\dcdot{\mathrel{\cdot\mkern 0.0mu \cdot}}%
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\trans}
+% Transformed sign.
+% \begin{macrocode}
+\DeclareRobustCommand*\trans{^{\mathrm{T}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \iffalse
+%</package>
+% \fi
+% \Finale
+