Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • b411401
  • /
  • tex
  • /
  • src
  • /
  • preamble-pgfplots.tex
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge
swh:1:cnt:7ffdeb7e2436f6317ac2774c9527d5ecda0cc6a0
directory badge
swh:1:dir:9f90b1ca6590e6016d1fe8468c2ff064c760461d

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
Generate software citation in BibTex format (requires biblatex-software package)
Generating citation ...
preamble-pgfplots.tex
%% PGFPlots settings
%% -----------------
%
%% PGFPLOTS is a package in (La)TeX for making plots internally. It fits
%% nicely with the purpose of a reproducible project. But it isn't
%% mandatory. Therefore if you don't need it, just comment/delete the line
%% that includes this file in the top LaTeX source (`paper.tex').
%
%% However, TiKZ and PGFPlots are the recommended way to include figures
%% and plots in your paper. There are two main reasons: 1) it follows the
%% same LaTeX settings as the text of the paper, so the figures will be in
%% the exact same settings (for example font or lines) as the main body of
%% the papers. 2) It doesn't require any extra dependency (it is
%% distributed as part of TeX-live). Adding specific programs/libraries for
%% plots can greatly increase the number of dependencies for the
%% project. For example Python's Matplotlib library is indeed very good,
%% but it requires Python and Numpy. The latter is not easy to build from
%% source, so after a few years, installing the required version can be
%% very frustrating.
%
%% Keeping all BibLaTeX settings in a separate preamble was done in the
%% spirit of modularity to 1) easily managable, 2) If a similar BibLaTeX
%% configuration is necessary in another LaTeX compilation, this file can
%% just be copied there and used.
%
%% PGFPlots uses the (La)TeX TiKZ package to build plots. So we will first
%% do the settings that are necessary in TiKZ, and then go onto the actual
%% PGFPlots package.
%%
%% USAGE:
%
%%  - All plots are made within a `tikz' directory (that must already be
%%    present in the location LaTeX is run).
%
%%  - Use `\includetikz{XXXX}' to make/use the figure. If a `makepdf' LaTeX
%%    macro is not defined, then \includetikz will assume a `XXXX.pdf' file
%%    exists in `tex/tikz' and simply import it. If `makepdf' is defined,
%%    then TiKZ/PGFPlot will be called to (possibly) build the plot based
%%    on `tex/XXXX.tex'. Note that if the contents of `tex/src/XXXX.tex'
%%    hasn't changed since the last build. TiKZ/PGFPlots won't rebuild the
%%    plot.
%
%% Copyright (C) 2018-2021 Mohammad Akhlaghi <mohammad@akhlaghi.org>
%
%% This file is part of Maneage (https://maneage.org).
%
%% This file is free software: you can redistribute it and/or modify it
%% under the terms of the GNU General Public License as published by the
%% Free Software Foundation, either version 3 of the License, or (at your
%% option) any later version.
%
%% This file is distributed in the hope that it will be useful, but WITHOUT
%% ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
%% FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
%% for more details.
%
%% You should have received a copy of the GNU General Public License along
%% with this file.  If not, see <http://www.gnu.org/licenses/>.




%% Very general TiKZ settings. In particular, to allow faster processing
%% (not having to re-build the plots on every run), we are using the
%% externalization feature of TiKZ. With this option, TiKZ will build every
%% figure independently in a special directory afterwards it will include
%% the built figure in the final file. This has many advantages: 1) if the
%% code for the plot hasn't changed, then the plot won't be re-made (can be
%% slow with detailed plots). 2) You can use the PDFs of the individual
%% plots for other purposes (for example to include in slides) cleanly.
\usepackage{tikz}
\usetikzlibrary{graphs}
\usetikzlibrary{external}
\usetikzlibrary{positioning}
\tikzexternalize
\tikzsetexternalprefix{tikz/}





%% The '\includetikz' can be used to either build the figures using
%% PGFPlots (when '\makepdf' is defined), or use an existing file (when
%% '\makepdf' isn't defined). When making the PDF, it will set the output
%% figure name to be the same as the 'tex/src/XXXX.tex' file that contains
%% the PGFPlots source of the figure. In this way, when using the PDF, it
%% will also have the same name, thus allowing the figures to easily change
%% their place relative to others: figure ordering won't be a problem. This
%% is a problem by default because if an explicit name isn't set at the
%% start, tikz will make images based on their order in the paper.
%
%% This function takes two arguments:
%%     1) The base-name of the LaTeX file with the 'tikzpicture'
%%        environment. As mentioned above, this will also be the name of
%%        the produced figure.
%%     2) The settings to use with 'includegraphics' when an already-built
%%        file should be used.
\newcommand{\includetikz}[2]{%
  \ifdefined\makepdf%
    \tikzsetnextfilename{#1}%
    \input{tex/src/#1.tex}%
  \else
    \includegraphics[#2]{tex/tikz/#1.pdf}
  \fi
}





%% Uncomment the following lines for EPS and PS images. Note that you still
%% have to use the `pdflatex' executable and also add a `[dvips]' option to
%% graphicx.

%% \tikzset{external/system call={rm -f "\image".eps "\image".ps
%% "\image".dvi; latex \tikzexternalcheckshellescape -halt-on-error
%% -interaction=batchmode -jobname "\image" "\texsource";
%% dvips -o "\image".ps "\image".dvi;
%% ps2eps "\image.ps"}}





%% Inport and configure PGFPlots.
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{groupplots}
\pgfplotsset{
  axis line style={thick},
  tick style={semithick},
  tick label style = {font=\footnotesize},
  every axis label = {font=\footnotesize},
  legend style = {font=\footnotesize},
  label style = {font=\footnotesize}
  }





%% Nodes in demo graphs
\tikzset{node-terminal/.style={
  rectangle,
  very thick,
  draw=blue!50,
  text centered,
  top color=white,
  minimum size=6mm,
  text width=2.1cm,
  rounded corners=3mm,
  bottom color=blue!20,
  font=\ttfamily}}

\tikzset{node-nonterminal/.style={
  rectangle,
  very thick,
  text centered,
  top color=white,
  text width=2.1cm,
  minimum size=6mm,
  draw=green!50!black!50,
  bottom color=green!80!black!50,
  font=\ttfamily}}

\tikzset{node-nonterminal-thin/.style={
  rectangle,
  thick,
  text centered,
  top color=white,
  text width=2cm,
  minimum size=2mm,
  draw=green!50!black!50,
  bottom color=green!80!black!50,
  font=\ttfamily\scriptsize}}

\tikzset{node-makefile/.style={
  thick,
  rectangle,
  anchor=south,
  minimum width=2.6cm,
  minimum height=5cm,
  draw=green!50!black!50,
  fill=black!10!green!12!white,
}}

\tikzset{node-point/.style={
  circle,
  black!50,
  inner sep=0pt,
  minimum size=0pt,
  fill=white}}

\tikzset{ bbox/.style={
  rectangle,
  minimum width=2.5cm,
  rounded corners=2mm,
  very thick,draw=blue!50,
  top color=white,
  bottom color=blue!20 } }

\tikzset{ rbox/.style={
    rectangle,
    dotted,
    minimum width=2.5cm,
    rounded corners=2mm,
    very thick,draw=red!50!black!50,
    top color=white,
    bottom color=red!50!black!20 } }

\tikzset{ gbox/.style={
    rectangle,
    minimum width=2.5cm,
    very thick,
    draw=green!50!black!50,
    top color=white,
    bottom color=green!50!black!20 } }

\tikzset{ dirbox/.style={
    thick,
    rectangle,
    anchor=north,
    text centered,
    font=\ttfamily,
    minimum width=15cm,
    minimum height=7.5cm,
    draw=brown!50!black!50,
    fill=brown!10!white }}

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API