summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ffcode
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-11 03:00:56 +0000
committerNorbert Preining <norbert@preining.info>2021-06-11 03:00:56 +0000
commitd6b2eaba6fe47c24603040934903c73535ff09ba (patch)
treee608eb7c4afe8e8f2dd739dda2dd79d375f32da0 /macros/latex/contrib/ffcode
parent2bd77f5a4d02b0d1649589aa7a548e79b198f6af (diff)
CTAN sync 202106110300
Diffstat (limited to 'macros/latex/contrib/ffcode')
-rw-r--r--macros/latex/contrib/ffcode/DEPENDS.txt5
-rw-r--r--macros/latex/contrib/ffcode/README.md31
-rw-r--r--macros/latex/contrib/ffcode/ffcode.pdfbin0 -> 107272 bytes
-rw-r--r--macros/latex/contrib/ffcode/ffcode.sty50
-rw-r--r--macros/latex/contrib/ffcode/ffcode.tex89
5 files changed, 175 insertions, 0 deletions
diff --git a/macros/latex/contrib/ffcode/DEPENDS.txt b/macros/latex/contrib/ffcode/DEPENDS.txt
new file mode 100644
index 0000000000..e1cb6ed564
--- /dev/null
+++ b/macros/latex/contrib/ffcode/DEPENDS.txt
@@ -0,0 +1,5 @@
+hard microtype
+hard xkeyval
+hard minted
+hard minted
+hard tcolorbox
diff --git a/macros/latex/contrib/ffcode/README.md b/macros/latex/contrib/ffcode/README.md
new file mode 100644
index 0000000000..1c95d6ece3
--- /dev/null
+++ b/macros/latex/contrib/ffcode/README.md
@@ -0,0 +1,31 @@
+[![make](https://github.com/yegor256/ffcode/actions/workflows/make.yml/badge.svg)](https://github.com/yegor256/ffcode/actions/workflows/make.yml)
+[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/yegor256/ffcode/blob/master/LICENSE.txt)
+
+This LaTeX package helps you write source code in your academic papers
+and make sure it looks neat.
+
+First, [install it](https://en.wikibooks.org/wiki/LaTeX/Installing_Extra_Packages)
+from [CTAN](https://ctan.org/pkg/ffcode)
+and then use in the preamble:
+
+```tex
+\documentclass{article}
+\usepackage{ffcode}
+\begin{document}
+The function \ff{r()} reads the file:
+\begin{ffcode}
+void r() {
+ // read the file
+}
+\end{ffcode}
+\end{document}
+```
+
+The full example and all commands are available in the
+[`ffcode.tex`](https://github.com/yegor256/ffcode/blob/master/ffcode.tex) file.
+
+If you want to contribute yourself, make a fork, then create a branch,
+then run `make` in the root directory.
+It should compile everything without errors. If not, submit an issue and wait.
+Otherwise, make your changes and then run `make` again. If the build is
+still clean, submit a pull request.
diff --git a/macros/latex/contrib/ffcode/ffcode.pdf b/macros/latex/contrib/ffcode/ffcode.pdf
new file mode 100644
index 0000000000..ee829bd037
--- /dev/null
+++ b/macros/latex/contrib/ffcode/ffcode.pdf
Binary files differ
diff --git a/macros/latex/contrib/ffcode/ffcode.sty b/macros/latex/contrib/ffcode/ffcode.sty
new file mode 100644
index 0000000000..280bc58bd8
--- /dev/null
+++ b/macros/latex/contrib/ffcode/ffcode.sty
@@ -0,0 +1,50 @@
+% (The MIT License)
+%
+% Copyright (c) 2021 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{ffcode}[2021/06/10 0.1.0 Fixed Font Code]
+
+\RequirePackage{microtype}
+\RequirePackage{xkeyval}
+\newif\ifnopygments
+\DeclareOptionX{nopygments}{\nopygmentstrue}
+\ProcessOptionsX\relax
+
+\ifnopygments
+ \RequirePackage[draft=true]{minted}
+\else
+ \RequirePackage{minted}
+\fi
+\setminted{breaklines}
+\usemintedstyle{bw}
+\renewcommand{\theFancyVerbLine}{\textcolor{gray}{\tiny\oldstylenums{\ttfamily\arabic{FancyVerbLine}}}}
+\newminted[ffcode]{text}{firstnumber=last,linenos,numbersep=2pt,framesep=6pt,framerule=1pt,
+ rulecolor=gray,frame=leftline,escapeinside=||,mathescape}
+
+\RequirePackage{tcolorbox}
+ \newtcbox{\codebox}{nobeforeafter,colframe=gray!80!white,
+ colback=gray!5!white,boxrule=0.1pt,arc=1pt,
+ boxsep=1.2pt,left=0.5pt,right=0.5pt,top=0.2pt,bottom=0.2pt,
+ tcbox raise base}
+\newcommand{\ff}[1]{\codebox{\vrule height 6pt depth 1pt width 0pt\texttt{#1}}}
+
+\endinput
diff --git a/macros/latex/contrib/ffcode/ffcode.tex b/macros/latex/contrib/ffcode/ffcode.tex
new file mode 100644
index 0000000000..dcefc53268
--- /dev/null
+++ b/macros/latex/contrib/ffcode/ffcode.tex
@@ -0,0 +1,89 @@
+% (The MIT License)
+%
+% Copyright (c) 2021 Yegor Bugayenko
+%
+% Permission is hereby granted, free of charge, to any person obtaining a copy
+% of this software and associated documentation files (the 'Software'), to deal
+% in the Software without restriction, including without limitation the rights
+% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+% copies of the Software, and to permit persons to whom the Software is
+% furnished to do so, subject to the following conditions:
+%
+% The above copyright notice and this permission notice shall be included in all
+% copies or substantial portions of the Software.
+%
+% THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+% SOFTWARE.
+
+\documentclass[12pt]{article}
+\usepackage[tt=false,type1=true]{libertine}
+\usepackage{amsmath}
+\usepackage{multicol}
+\usepackage{ffcode}
+\title{\ff{ffcode}: \LaTeX{} Package \\ for Fixed-Font Code Blocks}
+\author{Yegor Bugayenko}
+\date{0.1.0 2021/06/10}
+\begin{document}
+\pagenumbering{gobble}
+\raggedbottom
+\setlength{\topskip}{0mm}
+\setlength{\parindent}{0pt}
+\setlength{\columnsep}{32pt}
+\setlength{\parskip}{6pt}
+\maketitle
+
+This package helps you write source code in your articles
+and make sure it looks nice. Install it from CTAN and then
+use like this (pay attention to the \ff{\char`\\ff} command
+and the \ff{ffcode} environment):
+
+\begin{multicols}{2}
+\setlength{\parskip}{0pt}
+\scriptsize
+\raggedcolumns
+\begin{verbatim}\documentclass{article}
+\usepackage{ffcode}
+\begin{document}
+The function \ff{fibo()} is recursive:
+\begin{ffcode}
+void fibo(int n) {
+ if (n < 2) {
+ return n; |$\label{ln:ret}$|
+ }
+ return fibo(n - 1) + fibo(n - 2);
+}
+\end{ffcode}
+The line~\ref{ln:ret} terminates it.
+\end{document}
+\end{verbatim}
+
+\columnbreak
+
+The function \ff{fibo()} is recursive:
+
+\begin{ffcode}
+void fibo(int n) {
+ if (n < 2) { |$\label{ln:ret}$|
+ return n;
+ }
+ return fibo(n - 1) + fibo(n - 2);
+}
+\end{ffcode}
+
+The line~\ref{ln:ret} terminates it.
+\end{multicols}
+
+You have to run \ff{pdflatex} with the \ff{--shell-escape} flag
+in order to let \ff{minted} (the package we use) to run Pygments
+and format the code. If you don't want this to happen,
+just use the \ff{nopygments} option.
+
+More details about this package you can find
+in the \ff{yegor256/ffcode} GitHub repository.
+
+\end{document} \ No newline at end of file