0

Recently I saw a manual for working with glossaries, source code on page 14 there is a footnote with: enter image description here

  1. opening the source code
  2. downloading it from the server
  3. by downloading the finished pdf file I would like to implement the same in my code, please could you help me?

Approximately it should look like this: enter image description here

Without the desired footnote, it looks like this: enter image description here

My sources: everything is ready in overleaf

main.tex

\documentclass[12pt]{article}
\usepackage{style/code-style}

\begin{document}

\lstinputlisting{code/code.cpp}

\end{document}

style/code-style.sty

\usepackage[utf8]{inputenc}

\usepackage[english]{babel}

\usepackage{hyperref} \usepackage{longtable} \usepackage[table]{xcolor} \usepackage{array} \usepackage{color} \usepackage{xcolor}

\usepackage{ulem} \usepackage{listings} \usepackage{graphicx}

\hypersetup{ colorlinks=true, linkcolor=blue, filecolor=magenta, urlcolor=cyan, }

\usepackage{graphicx}

\usepackage{listings} \lstset{tabsize=12, breaklines, columns=fullflexible, flexiblecolumns, numbers=left, numberstyle={\footnotesize}, inputencoding=utf8, extendedchars=true, }

\usepackage{longtable}

\renewcommand{\thesubsection}{\arabic{subsection}}

\definecolor{dkgreen}{rgb}{0,0.4,0} \definecolor{gray}{rgb}{0.5,0.5,0.5} \definecolor{lightgray}{rgb}{0.95,0.95,0.95} \definecolor{mauve}{rgb}{0.58,0,0.82}

\def\commentstyle{\color{gray}} \lstset{ % language=C++, % the language of the code basicstyle=\footnotesize\ttfamily, % the size of the fonts that are used for the code numbers=left, % where to put the line-numbers numberstyle=\footnotesize\color{black}, % the style that is used for the line-numbers stepnumber=1, % the step between two line-numbers. If it's 1, each line % will be numbered numbersep=0.7em, % how far the line-numbers are from the code backgroundcolor=\color{lightgray}, % choose the background color. You must add \usepackage{color} showspaces=false, % show spaces adding particular underscores showstringspaces=false, % underline spaces within strings showtabs=false, % show tabs within strings adding particular underscores frame=single, % adds a frame around the code rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. commens (green here)) tabsize=2, % sets default tabsize to 2 spaces breaklines=true, % sets automatic line breaking breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace identifierstyle=\color{blue!25!black},
keywordstyle=\color{blue!90!black}, % keyword style commentstyle=\commentstyle, % comment style stringstyle=\color{mauve}, % string literal style escapeinside={`}{`}, % if you want to add a comment within your code escapebegin=\commentstyle\footnotesize, %morekeywords={n,k}, % if you want to add more keywords to the set morecomment=[l][\color{dkgreen}]{#}, % to color #include<cstdio> morecomment=[s][\commentstyle\color{gray!50!black}]{/*}{/} }

code/code.cpp

vector<int> divisors[n + 1];
for (int a = 1; a <= n; a++)
  for (int b = a; b <= n; b += a) divisors[b].push_back(a);

Thank you in advance, cheers!

JamesT
  • 3,169
avebass
  • 13
  • Just my curiosity: how will such a feature increase readability of a printed document? Iā€˜d understand your request in the context of webpages or ebooks, which already provide many solutions. – MS-SPO Jan 24 '23 at 20:39
  • @MS-SPO nothing ;) The idea is not to copy the code, but just download it, since when copying the code is highlighted with line numbers (I know there are (https://tex.stackexchange.com/questions/57141/is-there-a-latex-trick-to-prevent-a-pdf-viewer-from-copying-the-line-number)) , and with the help of this footnote, you can immediately download the source code in any language, and if there is no Internet, then you can already open it on your computer apparently. Sorry for such a difficult question, I see only Nicola Talbot will help me – avebass Jan 24 '23 at 21:16

1 Answers1

1

Well, by the looks of it, Talbot used the tcolorbox, graphicx and hyperref packages to create that layout in the example you showed.

tcolorbox creates the box and the title with the PDF icon. The graphicx package is used to insert an icon into a href statement: `href[options]{URL}{text / icon}.

I played around a bit, downloaded a few relevant icons from the web and created this small MWE that shows the same idea's as your example:

\documentclass[a4paper,11pt]{article}

\usepackage[many]{tcolorbox} \usepackage{graphicx} \usepackage{hyperref}

\begin{document}

\begin{tcolorbox}[rounded corners,arc=8pt,size=fbox,boxsep=6pt,enhanced,attach boxed title to top right={yshift=-3mm,xshift=-3mm},title={\href{url}{\includegraphics*[width=4mm]{pdf_icon.png}}}]
\hfill \href{ulr2}{\includegraphics*[width=3mm]{clip_icon.png}}
    \hspace{1mm} \href{ulr2}{\includegraphics*[width=3mm]{down_icon.png}}
    \vspace{-18pt}
\begin{verbatim}
    vector&lt;int&gt; divisors[n + 1];
    for (int a = 1; a &lt;= n; a++)
    for (int b = a; b &lt;= n; b += a) divisors[b].push_back(a);
\end{verbatim}
\end{tcolorbox}

\end{document}

The output looks like this:

enter image description here

alchemist
  • 1,761