summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-07-15 20:11:56 +0000
committerKarl Berry <karl@freefriends.org>2023-07-15 20:11:56 +0000
commitf380efc6f2b9a841b500ccbe19f498069129af0f (patch)
treebbd1bc99a7053a5c20f78b2a9d290b36f0280e86 /Master/texmf-dist/source
parentf15b764fe1a5af37fceeba3e43e165dda9a6a226 (diff)
hep-graphic (15jul23)
git-svn-id: svn://tug.org/texlive/trunk@67641 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/hep-graphic/hep-graphic-implementation.dtx559
-rw-r--r--Master/texmf-dist/source/latex/hep-graphic/hep-graphic.ins51
2 files changed, 610 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/hep-graphic/hep-graphic-implementation.dtx b/Master/texmf-dist/source/latex/hep-graphic/hep-graphic-implementation.dtx
new file mode 100644
index 00000000000..cb1a41e4c22
--- /dev/null
+++ b/Master/texmf-dist/source/latex/hep-graphic/hep-graphic-implementation.dtx
@@ -0,0 +1,559 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2023 by Jan Hajer
+% -----------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% \fi
+%
+% \iffalse
+%
+%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
+%<package>\ProvidesPackage{hep-graphic}[2023/07/01 v1.0 Graphics in High Energy Physics]
+%<plot>\ProvidesPackage{hep-plot}[2023/07/01 v1.0 Plots in High Energy Physics]
+%<feynman>\ProvidesPackage{hep-feynman}[2023/07/01 v1.0 Feynman diagrams in High Energy Physics]
+%<documentation>\ProvidesFile{hep-graphic-documentation.tex}[2023/07/01 v1.0 HEP-graphic documentation]
+%
+%<*documentation>
+%
+\RequirePackage[l2tabu, orthodox]{nag}
+\documentclass{ltxdoc}
+
+\renewcommand\theCodelineNo{\rmfamily\tstyle\footnotesize\arabic{CodelineNo}}
+\AtBeginEnvironment{macrocode}{\renewcommand{\ttdefault}{clmt}}
+\renewcommand{\MacroFont}{\codestyle}
+\AtBeginDocument{\DeleteShortVerb{\|}}
+\AtBeginDocument{\MakeShortVerb{\"}}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+
+\usepackage{hologo}
+
+\usepackage[parskip,oldstyle,font=10pt]{hep-paper}
+\bibliography{bibliography}
+%</documentation>
+
+%<*driver>
+\expandafter\newif\csname ifshort\endcsname
+\shortfalse
+\begin{document}
+\DocInput{hep-graphic-implementation.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{0}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \ifshort
+%<*documentation>
+% \fi
+%
+\GetFileInfo{hep-graphic.sty}
+
+% \title{The \software{hep-graphic} package\thanks{This document corresponds to \software{hep-graphic}~\fileversion.}}
+\title{The \software{hep-graphic} package\thanks{This document corresponds to \software{hep-graphic}~v1.0.}}
+\subtitle{Plot macros}
+\author{Jan Hajer \email{jan.hajer@tecnico.ulisboa.pt}}
+% \date{\filedate}
+\date{2023/07/01}
+
+% \ifshort
+\begin{document}
+% \fi
+
+\newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em}
+
+\maketitle
+
+\begin{abstract}
+The \software{hep-graphic} is a convenience wrapper for the \software{pgf/tikz}, \software{pgfplots}, and \software{standalone} packages.
+\end{abstract}
+
+\section{Graphic}
+
+After loading the "hep-graphic" package the \software{pgf/tikz} \cite{pgf} and \software{standalone} \cite{standalone} packages are loaded and externalisation is activated.
+The "plot" and "feynman" options load the neccessary packages for plotting and feynman diagrams.
+The macro "\includetikz"\oarg{width}\marg{name} loads "tikz" pictures.
+
+\subsection{Plot}
+
+The \software{hep-plot} package loads the \software{pgfplots} package \cite{pgfplots} and applies some optimisation.
+
+\subsection{Feynman}
+
+The \software{hep-feynman} package loads the \software{tikz-feynman} package \cite{tikz-feynman} and applies some optimisation.
+
+% \ifshort
+\printbibliography
+
+\end{document}
+%
+%</documentation>
+% \fi
+%
+% \StopEventually{
+% \printbibliography
+% \PrintChanges
+% }
+%
+% \appendix
+%
+% \section{Implementation}
+%
+% \subsection{Graphic}
+%
+%<*package>
+%
+% Define a hepgraphic namespace for the options using the \software{kvoptions} package \cite{kvoptions}.
+% \begin{macrocode}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{
+ family=hepgraphic,
+ prefix=hepgraphic@
+}
+% \end{macrocode}
+%
+% \begin{macro}{plot}
+% Define the "plot" switch for loading plot code.
+% \begin{macrocode}
+\DeclareBoolOption[false]{plot}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{feynman}
+% Define the "feynman" switch for loading feynman code.
+% \begin{macrocode}
+\DeclareBoolOption[false]{feynman}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\ProcessKeyvalOptions*
+% \end{macrocode}
+%
+% Load the \software{hep-plot} and \software{hep-feynman} packages when required.
+% \begin{macrocode}
+\ifhepgraphic@plot\RequirePackage{hep-plot}\fi
+\ifhepgraphic@feynman\RequirePackage{hep-feynman}\fi
+% \end{macrocode}
+%
+% Load the \software{tikz} package with the \software{external} library \cite{pgf}.
+% \begin{macrocode}
+\RequirePackage{tikz}
+\usetikzlibrary{external}
+\tikzexternalize[
+ optimize=false,
+ only named=true,
+]
+% \end{macrocode}
+%
+% \begin{macro}{\graphicpath}
+% Load the \software{standalone} package \cite{standalone} and define the "\graphicpath" pointing to the folder with "pgf" files.
+% \begin{macrocode}
+\RequirePackage{standalone}
+\def\hep@graphic@path{.}
+\newcommand{\graphicpath}[1]{\def\hep@graphic@path{#1}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\includetikz}
+% Define a macro to include "tikz" figures using the \software{xparse} package \cite{xparse}.
+% \begin{macrocode}
+\RequirePackage{xparse}
+\NewDocumentCommand{\includetikz}{sO{1}m}{%
+ \tikzsetnextfilename{#3}%
+ \IfBooleanTF{#1}{%
+ \includestandalone{\hep@graphic@path/#3}%
+ }{%
+ \linewidth=#2\linewidth
+ \includestandalone[width=\linewidth]{\hep@graphic@path/#3}%
+ }%
+}
+\newcommand{\includefeynman}[1]{%
+ \vcenter{\hbox{\includestandalone{\hep@graphic@path/#1}}}%
+}
+% \end{macrocode}
+% \end{macro}
+%
+%</package>
+%
+% \subsection{Plots}
+%
+%<*plot>
+%
+% Load the \software{pgf/tikz} package \cite{pgf}.
+% \begin{macrocode}
+\RequirePackage{tikz}
+% \end{macrocode}
+%
+% \begin{macro}{dashdotdotdotted}
+% \begin{macro}{dashdotdotdotdotted}
+% Add new line styles.
+% \begin{macrocode}
+\tikzset{
+ dashdotdotdotted/.style={dash pattern=on 3pt off 2pt
+ on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt
+ on \the\pgflinewidth off 2pt
+ },
+ dashdotdotdotdotted/.style={dash pattern=on 3pt off 2pt
+ on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt
+ on \the\pgflinewidth off 2pt on \the\pgflinewidth off 2pt
+ },
+}%
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% Change thousand separator
+% \begin{macrocode}
+\pgfkeys{/pgf/number format/.cd,1000 sep={\,}}%
+% \end{macrocode}
+%
+% Load the \software{pgfplots} package \cite{pgfplots} and set global options.
+% \begin{macrocode}
+\RequirePackage{pgfplots}
+\pgfplotsset{
+ compat=newest,
+ width=\linewidth,
+ height=\linewidth,
+ enlargelimits=false,
+}
+% \end{macrocode}
+%
+% Fix glitch.
+% \begin{macrocode}
+\pgfplotsset{
+ every y tick scale label/.append style={
+ inner sep=1pt,
+ xshift=-1pt,
+ yshift=-1pt,
+ },
+}
+% \end{macrocode}
+%
+% Set default font size
+% \begin{macrocode}
+\pgfplotsset{
+ legend style={font=\footnotesize},
+ tick label style={font=\footnotesize},
+ label style={font=\small},
+ title style={font=\small},
+ max space between ticks=30,
+}
+% \end{macrocode}
+% \begin{macro}{three panels}
+% Set font size three panel versions
+% \begin{macrocode}
+\pgfplotsset{
+ three panels/.style={
+ legend style={font=\scriptsize},
+ tick label style={font=\scriptsize},
+ label style={font=\footnotesize},
+ title style={font=\footnotesize},
+ max space between ticks=25,
+ /tikz/mark size=1.5pt,
+ major tick length=1mm,
+ minor tick length=0.66mm,
+ every axis title shift=0pt,
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{colors}
+% \begin{macro}{line styles}
+% \begin{macro}{marks}
+% \begin{macro}{horizontal marks}
+% \begin{macro}{vertical marks}
+% Create cycle lists
+% \begin{macrocode}
+\colorlet{darkgreen}{green!50!black}
+\pgfplotscreateplotcyclelist{colors}{
+ blue, red, darkgreen, violet, orange, yellow!25!orange,
+ brown, black
+}
+\pgfplotscreateplotcyclelist{line styles}{
+ solid, dashed, {densely dotted, semithick}, dashdotted,
+ dashdotdotted, dashdotdotdotted, dashdotdotdotdotted
+}
+\pgfplotscreateplotcyclelist{marks}{
+ -, |, Mercedes star flipped, Mercedes star, +, x, star,
+ asterisk, 10-pointed star
+}
+\pgfplotscreateplotcyclelist{vertical marks}{
+ |, Mercedes star flipped, Mercedes star, x, star,
+ asterisk, 10-pointed star
+}
+\pgfplotscreateplotcyclelist{horizontal marks}{
+ -, Mercedes star flipped, Mercedes star, x, star, %asterisk,
+ 10-pointed star
+}
+\pgfplotsset{
+ cycle multiindex* list={colors\nextlist line styles},
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\cyclelistshift}
+% Define the "\cyclelistshift" macro skiping one step in a cyclelist.
+% Must be used in combination with "\setcounter{cyclelistshift}{0}".
+% \begin{macrocode}
+\newcounter{cyclelistshift}
+\newcommand\cyclelistshift{
+ \globaldefs=1\relax
+% \stepcounter{cyclelistshift}
+ \addtocounter{cyclelistshift}{1}
+ \pgfplotsset{cycle list shift=\value{cyclelistshift}}
+ \globaldefs=0\relax
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{legend}
+% Set the legend style.
+% \begin{macrocode}
+\pgfplotsset{
+ legend cell align=left,
+ legend style={
+ at={(1,1)},
+ anchor=north east,
+ inner sep=1pt,
+ outer sep=6pt,
+ draw=none,
+ fill opacity=.9,
+ draw opacity=1,
+ text opacity=1,
+ cells={align=left},
+ /tikz/every even column/.append style={column sep=.5em},
+% fill=none,
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{contour legend}
+% Define basic contour legend
+% \begin{macrocode}
+\pgfplotsset{
+ contour legend/.style={
+ contour prepared={labels=false},
+ colorbar sampled line,
+ colorbar style={
+ mark size=7pt,
+ mark options={semithick},
+ tickwidth=0pt,
+ subtickwidth=0pt,
+ },
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{contour legend x}
+% Define horizontal contour legend.
+% \begin{macrocode}
+\usepgfplotslibrary{colormaps}
+\pgfplotsset{
+ contour legend x/.style={
+ colorbar horizontal,
+ colormap/jet,
+ contour legend,
+ colorbar style={
+ at={(0.5,1.025)},
+ anchor=south,
+ mark=|,
+ axis x line*=top,
+ axis y line=none,
+ xticklabel pos=upper,
+ title style={
+ at={(-0.05,1)},
+ anchor=east,
+ },
+ xlabel style={
+ at={(-0.06,1)},
+ anchor=south east,
+ },
+ },
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{contour legend y}
+% Define vertical contour legend.
+% \begin{macrocode}
+\pgfplotsset{
+ contour legend y/.style={
+ contour legend,
+ colorbar style={
+ at={(1.025,0.5)},
+ anchor=west,
+ mark=-,
+ axis x line=none,
+ title style={
+ at={(1,-0.1)},
+ anchor=north west,
+ },
+ },
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{contour plot x}
+% \begin{macro}{contour plot y}
+% Define vertical contour legend.
+% \begin{macrocode}
+\pgfplotsset{
+ contour plot x/.style={
+ contour legend x,
+ contour prepared={labels=false},
+ },
+ contour plot y/.style={
+ contour legend y,
+ contour prepared={labels=false},
+ },
+}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{error legend}
+% Define error legend.
+% \begin{macrocode}
+\pgfplotsset{
+ error legend/.style n args={3}{
+ legend image code/.code={
+ \draw[draw=none,fill=#1,#3](0mm,-1mm)rectangle(6mm,1mm);
+ \draw[draw=#1,#2] (0mm,0mm)--(6mm,0mm);
+ }
+ },
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\addlegendtitle}
+% Define a legend title macro.
+% \begin{macrocode}
+\newcommand{\addlegendtitle}[2][]{
+ \addlegendimage{empty legend}
+ \addlegendentry[#1]{\hspace{-7mm}#2}
+}%
+% \end{macrocode}
+% \end{macro}
+%
+%</plot>
+%
+% \subsection{Feynman graphs}
+%
+%<*feynman>
+%
+% Load \software{tikz-feynman} package \cite{tikz-feynman} to enable the drawing of Feynman diagrams.
+% Deactivate warning
+% \begin{macrocode}
+\RequirePackage{tikz-feynman}
+\tikzfeynmanset{
+ compat=1.1.0,
+ warn luatex=false,
+}
+\makeatletter\def\tikzfeynman@luatex@required@path{}\makeatother
+% \end{macrocode}
+%
+% Redfine the arrow style
+% \begin{macrocode}
+\tikzfeynmanset{
+ with arrow/.style={%
+ decoration={markings,mark=at position#1with\arrow{>}},
+ postaction=decorate
+ },
+ with reversed arrow/.style={%
+ decoration={markings,mark=at position#1with\arrow{<}},
+ postaction=decorate
+ },
+ momentum/arrow style={->},
+}
+% \end{macrocode}
+%
+%</feynman>
+%
+% \section{Tests}
+%
+%<*test>
+%
+% \begin{macrocode}
+\documentclass{article}
+
+\usepackage{hep-graphic}
+
+\begin{document}
+
+\end{document}
+% \end{macrocode}
+%
+%</test>
+%
+% \section{Readme}
+%
+%<*readme>
+%
+% \begin{macrocode}
+# The `hep-graphic` package
+
+A `LaTeX` package for publications in High Energy Physics.
+
+## Introduction
+
+...
+
+## Author
+
+Jan Hajer
+
+## License
+
+This file may be distributed and/or modified under the conditions of the
+`LaTeX` Project Public License, either version 1.3c of this license or
+(at your option) any later version. The latest version of this license is
+in `http://www.latex-project.org/lppl.txt` and version 1.3c or later is
+part of all distributions of LaTeX version 2005/12/01 or later.
+% \end{macrocode}
+%
+%</readme>
+%
+% \Finale
+
+\endinput
+
+% \PrintIndex
+% makeindex -s gglo.ist -o hep-graphic-implementation.gls hep-graphic-implementation.glo
+% makeindex -s gglo.ist -o hep-graphic-implementation.ind hep-graphic-implementation.idx
diff --git a/Master/texmf-dist/source/latex/hep-graphic/hep-graphic.ins b/Master/texmf-dist/source/latex/hep-graphic/hep-graphic.ins
new file mode 100644
index 00000000000..5291b448439
--- /dev/null
+++ b/Master/texmf-dist/source/latex/hep-graphic/hep-graphic.ins
@@ -0,0 +1,51 @@
+%% Copyright (C) 2019-2023 by Jan Hajer
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.3c or later is part of all distributions of
+%% LaTeX version 2005/12/01 or later.
+
+\input docstrip.tex
+\keepsilent
+\usedir{tex/latex/hep-graphic}
+
+\preamble
+This is a generated file.
+Copyright (C) 2019-2023 by Jan Hajer
+This file may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any later
+version. The latest version of this license is in:
+http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+\endpreamble
+
+\generate{
+ \file{hep-graphic-documentation.tex}{\from{hep-graphic-implementation.dtx}{documentation}}
+ \file{hep-graphic.sty}{\from{hep-graphic-implementation.dtx}{package}}
+ \file{hep-plot.sty}{\from{hep-graphic-implementation.dtx}{plot}}
+ \file{hep-feynman.sty}{\from{hep-graphic-implementation.dtx}{feynman}}
+ \file{hep-graphic-test.tex}{\from{hep-graphic-implementation.dtx}{test}}
+ \nopreamble\nopostamble\file{README-hep-graphic.md}{\from{hep-graphic-implementation.dtx}{readme}}
+}
+
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space hep-graphic.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file}
+\Msg{* hep-graphic-documentation.dtx through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+
+\endbatchfile