168 lines
5.1 KiB
TeX
168 lines
5.1 KiB
TeX
\documentclass[letterpaper, 10pt, twoside]{article}
|
|
|
|
% Packages without options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\usepackage{lipsum}
|
|
\usepackage{verbatim} % Better code blocks
|
|
\usepackage{fancyvrb} % Even better code blocks
|
|
\usepackage{fvextra} % Even more better code blocks
|
|
\usepackage{enumitem} % Control spacing inside list environments
|
|
\usepackage{microtype}
|
|
\usepackage{wrapfig} % Allows us to use \wrapfigure command
|
|
\usepackage{adjustbox} % Adjust padding inside \minipage environment
|
|
\usepackage{tikz}
|
|
|
|
% Packages with options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\usepackage{multicol}
|
|
\setlength\columnsep{25pt}
|
|
\usepackage{fancyhdr}
|
|
\pagestyle{fancy}
|
|
\fancyhf{} % Clear existing header/footer entries
|
|
\fancyhead[LE, RO]{\thepage} % Page number is always on the outside
|
|
\fancyhead[CE, CO]{Notes on Python} % Title is always in the middle
|
|
\fancyhfoffset[LE,RO]{0in} % Adjust header and footer width to match text width
|
|
% \cfoot{Page \thepage}
|
|
% \renewcommand{\footrulewidth}{0.5pt}
|
|
\renewcommand{\headrulewidth}{0.5pt}
|
|
|
|
\usepackage{geometry}
|
|
\geometry{
|
|
bmargin=0.75in, % bottom margin
|
|
tmargin=1in, % top margin
|
|
hmargin=0.75in, % horizontal margin
|
|
bindingoffset=0.25in
|
|
}
|
|
|
|
\usepackage[nottoc,numbib]{tocbibind} % Add references to TOC
|
|
|
|
\usepackage[hidelinks]{hyperref} % Include URLs
|
|
|
|
% My macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% Make a nice border and box for the tops of our examples
|
|
\newcommand\klab[3]{\vspace{#1}\noindent{}\hrulefill~~\fbox{\texttt{~#2~}}~~\hrulefill\vspace{#3}}
|
|
|
|
% Add an \hrule with space above and below
|
|
\newcommand\krule[2]{\vspace{#1}\hrule\vspace{#2}}
|
|
|
|
% Make hrefs easier (must load package hyperref}
|
|
\newcommand\kref[2]{\href{#1}{{\texttt{#2}}}}
|
|
|
|
% Make some call outs
|
|
\newcommand\kpull[2]{
|
|
\setlength{\intextsep}{5.0pt plus 2.0pt minus 2.0pt}%
|
|
\setlength{\columnsep}{10pt}
|
|
\begin{wrapfigure}[]{r}[8pt]{0pt}
|
|
\fbox{
|
|
\adjustbox{padding*=0pt 2pt 0pt 1pt}{
|
|
\begin{minipage}{#2} % This is the width of the call out
|
|
\begin{small}
|
|
\begin{flushleft}
|
|
{#1} % This is the contents of the call out
|
|
\end{flushleft}
|
|
\end{small}
|
|
\end{minipage}
|
|
} % End adjustbox
|
|
} % End fbox
|
|
\end{wrapfigure}
|
|
}
|
|
% And make them work nicely with out multicol environment
|
|
% Not quite sure if commented lines are needed. More testing is required.
|
|
%\def\ksep{25pt}
|
|
\newcommand\kcolb{
|
|
% \setlength{\columnsep}{\ksep}
|
|
\begin{multicols}{2}
|
|
}
|
|
\newcommand\kcole{
|
|
\end{multicols}
|
|
}
|
|
|
|
% Add an indent to bibliography items
|
|
% This is a bit of a kludge, but it works. Look for a best practice to replace this.
|
|
\newcommand\kbib{
|
|
\begin{tikzpicture} \draw [white, line width=6] (0,0) -- (0.1,0); \end{tikzpicture}
|
|
}
|
|
|
|
% Make a Python Symbol like a LaTeX symbol
|
|
\newcommand\kpy{P{\scriptsize \raisebox{-0.4em}{\hspace{-0.16em}Y}}T{\scriptsize \raisebox{-0.2em}{h}}\hspace{-0.1em}\raisebox{0.4em}{o}\hspace{0.05em}\raisebox{-0.2em}N}
|
|
|
|
% Additional options %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\raggedbottom
|
|
|
|
% Title info %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\title{\textbf{Notes on Python}}
|
|
\author{Kenneth John Odle\\ {\small \texttt{ken at kjodle dot net}}}
|
|
\date{2023\\ \medskip v. 0.0.1}
|
|
|
|
% Notes to self %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Make sure that \section{} is OUTside the multicols environment
|
|
% Make sure that \subsection{} is INside the multilcols environment
|
|
% If needed, add \newpage before a \section if the placement of the heading is weird
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\begin{abstract}
|
|
This document consists of notes on Python, gleaned from various sources. A list of references (often with commentary) follows.
|
|
|
|
The latest version of this document can be found at \kref{https://git.kjodle.net/kjodle/Notes-on-Python}{https://git.kjodle.net/kjodle/Notes-\\on-Python}.
|
|
\end{abstract}
|
|
|
|
\tableofcontents
|
|
|
|
\newpage
|
|
|
|
\section{Preliminaries}
|
|
|
|
\kcolb
|
|
|
|
\subsection{What is Python?}
|
|
|
|
|
|
\subsection{Why use Python?}
|
|
|
|
Many fields depend on \kpy\footnote{This is my attempt to produce a text symbol for Python, similar to \LaTeX{}. My thought is that it looks like a snake wriggling back and forth. Your mileage, of course, may (and probably will) vary.} to process data.
|
|
|
|
Mueller\cite{mueller:jp23} has many reasons why a knowledge of Python may be useful in a career search.
|
|
|
|
\subsection{IDEs and Python}
|
|
|
|
\kcole
|
|
|
|
\newpage
|
|
\section{Python Basics}
|
|
|
|
\kcolb
|
|
|
|
\subsection{Python Data Types}
|
|
|
|
\kcole
|
|
|
|
% References page begins below %%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
\newpage
|
|
|
|
\begin{thebibliography}{XX}
|
|
|
|
\kcolb
|
|
|
|
\bibitem{mueller:jp23}
|
|
Mueller, John Paul.
|
|
\textit{Beginning Programming with Python for Dummies}.
|
|
John Wiley \& Sons Inc. (United States: New Jersey: Hoboken).
|
|
3rd Edition,
|
|
2023.\\
|
|
\kbib{}This book \textit{heavily} emphasizes the use of Google Colab. It's basically an advertisement for the $\Gamma$oogle and \textit{highly} disappointing. Python is meant to be fairly universal and this book's approach seems to work counter to that intention.
|
|
|
|
\bibitem{pythonorg:main}
|
|
python.org.
|
|
``Python for Beginners'',\\
|
|
\kref{https://www.python.org/about/gettingstarted/}{https://www.python.org/about/\\gettingstarted/}\\
|
|
\kbib The official site of the Python Software Foundation.
|
|
|
|
\kcole
|
|
|
|
\end{thebibliography}
|
|
|
|
\end{document} |