UniNotes

Latex template for university notes

Category

university

License

Free to use (MIT)

File

main.tex

main.texRead-only preview
% =============================================================================
% GUIDA RAPIDA - Personalizzazione Template CS Notes
% =============================================================================

\documentclass{csnotes}

\title{Guida Rapida}
\author{Template CS Notes}
\date{\today}

\university{Guida di Riferimento}
\department{Personalizzazione}
\course{Template LaTeX}
\subject{Computer Science Notes}
\academicyear{2024/2025}
\addbibresource{bibliography.bib} 

\begin{document}
\maketitlepage{}
\tableofcontents
% Tre indici separati:
\listoftheorems
\listofexamples
\listofalgos

\newpage

% =============================================================================
% COMANDI E AMBIENTI
% =============================================================================

\section{Comandi e Ambienti Disponibili}

\subsection{Ambienti per Contenuti Teorici}\label{sec:theoretical_environments}

\begin{definition}{Nome Definizione (opzionale)}
Usa l'ambiente \code{definition} per definizioni formali.
Colore: Blu
\end{definition}

\begin{theorem}{Nome Teorema (opzionale)}
Usa l'ambiente \code{theorem} per teoremi importanti.
Colore: Rosso
\end{theorem}

\begin{lemma}{Nome Lemma (opzionale)}
Usa l'ambiente \code{lemma} per lemmi e risultati ausiliari.
Colore: Arancione
\end{lemma}

\begin{proposition}{Nome Proposizione (opzionale)}
Usa l'ambiente \code{proposition} per proposizioni.
Colore: Viola
\end{proposition}

\begin{corollary}{Nome Corollario (opzionale)}
Usa l'ambiente \code{corollary} per corollari.
Colore: Verde
\end{corollary}

\subsection{Ambienti Pratici}\label{sec:practical_environments}

\begin{example}{Nome Esempio (opzionale)}
Usa l'ambiente \code{example} per esempi pratici e casi d'uso.
Colore: Teal
\end{example}

\begin{observation}{Titolo Nota (opzionale)}
Usa l'ambiente \code{observation} per le osservazioni riguardo argomenti specifici.
Colore: Giallo
\end{observation}

\begin{note}{Titolo Nota (opzionale)}
Usa l'ambiente \code{note} per note del redattore e approfondimenti.
Colore: Giallo
\end{note}

\begin{warning}{Titolo Avviso (opzionale)}
Usa l'ambiente \code{warning} per avvisi, errori comuni, attenzioni.
Colore: Rosso
\end{warning}

\begin{algorithmdesc}{Nome Algoritmo (opzionale)}
Usa l'ambiente \code{algorithmdesc} per descrizioni di algoritmi.
Colore: Grigio-blu
\end{algorithmdesc}

% =============================================================================
% DIMOSTRAZIONE
% =============================================================================

\section{Dimostrazioni}

\begin{theorem}[label=thm:esempio]{Esempio con Dimostrazione}
Questo è un teorema che richiede una dimostrazione.
\end{theorem}

\begin{proof}
Scrivi qui la dimostrazione. Alla fine verrà aggiunto automaticamente
il simbolo QED \(\square\).
\end{proof}

% Dimostrazione con titolo personalizzato
\begin{proof}[Dimostrazione per assurdo]
Puoi anche personalizzare il titolo della dimostrazione.
\end{proof}

\begin{warning}{}
  In caso di ambienti senza titolo, vanno in ogni caso aggiunte le parentesi graffe vuote:
  \begin{lstlisting}[language=TeX]
    \begin{proposition}{}
    ...
    \end{proposition}
  \end{lstlisting}
\end{warning}

% =============================================================================
% COMANDI SPECIALI
% =============================================================================

\section{Comandi Speciali}

\subsection{Formattazione Testo}

\begin{itemize}
    \item \keyword{Parola chiave} --- Evidenzia termini importanti in blu grassetto
    \item \code{codice inline} --- Formatta codice inline con sfondo grigio
    \item \textbf{Grassetto normale} --- Grassetto standard
    \item \textit{Corsivo normale} --- Corsivo standard
\end{itemize}

\subsection{Notazioni di Complessità}

\begin{example}{Complessità Computazionale}
Usa i comandi dedicati per le notazioni asintotiche:
\begin{itemize}
    \item \code{\textbackslash{}BigO\{n\}} produce: \(\BigO{n}\)
    \item \code{\textbackslash{}BigOmega\{n log n\}} produce: \(\BigOmega{n \log n}\)
    \item \code{\textbackslash{}BigTheta\{n\^{}2\}} produce: \(\BigTheta{n^2}\)
\end{itemize}
\end{example}

\subsection{Simboli per avvertimenti}

Sono disponibili comandi per inserire simboli di attenzione e avviso nel testo:
\begin{itemize}
    \item \code{\textbackslash{}warningsymbol} produce: \warningsymbol
    \item \code{\textbackslash{}infosymbol} produce: \infosymbol
\end{itemize}

\subsection{Comandi matematici}

Sono definiti comandi per insiemi numerici comuni:
\begin{itemize}
    \item \code{\textbackslash{}N} produce: \(\N\)
    \item \code{\textbackslash{}Z} produce: \(\Z\)
    \item \code{\textbackslash{}Q} produce: \(\Q\)
    \item \code{\textbackslash{}R} produce: \(\R\)
    \item \code{\textbackslash{}C} produce: \(\C\)
\end{itemize}

Tra le varie utily, sono presenti anche:
\begin{itemize}
    \item \code{\textbackslash{}abs\{x\}} produce: \(\abs{x}\)
    \item \code{\textbackslash{}set\{x\}[condition]} produce: \(\set{x}[condition]\)
    \item \code{\textbackslash{}st} produce: \(\st\)
\end{itemize}

\subsection{Altro}

Altri comandi utili inseriti includono:
\begin{itemize}
    \item \code{\textbackslash{}q{text}} per virgolette tipografiche: \q{text}
    \item \code{\textbackslash{}qi{text}} per virgolette tipografiche in corsivo: \qi{text}
\end{itemize}

% =============================================================================
% CODICE
% =============================================================================

\section{Inserimento Codice}

\subsection{Codice Inline}

Usa il comando \code{\textbackslash{}code\{...\}} per brevi snippet inline, 
ad esempio: \code{int x = 42;} o \code{list.append(item)}.

\subsection{Blocchi di Codice}

\begin{example}{Sintassi lstlisting}
Per blocchi di codice più lunghi usa l'ambiente \code{lstlisting}:
\end{example}

\begin{lstlisting}[language=Python, caption=Esempio base]
def hello(name):
    """Saluta una persona."""
    print(f"Ciao, {name}!")

hello("Mario")
\end{lstlisting}

\begin{note}{Linguaggi Supportati}
Alcuni dei linguaggi supportati:
\begin{itemize}
    \item Python
    \item Java
    \item C, C++
    \item JavaScript
    \item SQL
    \item Haskell
    \item Bash
    \item E molti altri...
\end{itemize}
\end{note}

\subsection{Opzioni Listing}

\begin{lstlisting}[
    language=C++,
    caption=Opzioni personalizzate,
    label=lst:esempio,
    numbers=left,
    firstnumber=1,
]
#include <iostream>
using namespace std;

int main() {
    cout << "Hello World!" << endl;
    return 0;
}
\end{lstlisting}

Puoi riferire il listing~\ref{lst:esempio} usando le label.

% =============================================================================
% MATEMATICA
% =============================================================================
\newpage
\section{Formule Matematiche}

\subsection{Formule Inline}

Usa \code{\textbackslash(...\textbackslash)} per formule inline: 
\(E = mc^2\), \(x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\).

\subsection{Formule Displayed}

Usa \code{\textbackslash[...\textbackslash]} per formule centrate:
\[
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
\]

\subsection{Ambienti Equation}

\begin{equation}
    \int_0^\infty e^{-x^2} dx = \frac{\sqrt{\pi}}{2}
    \label{eq:gaussian}
\end{equation}

Puoi riferire l'equazione~\eqref{eq:gaussian} usando label.

\subsection{Sistemi di Equazioni}

\begin{align}
    x + y &= 5 \\
    2x - y &= 1
\end{align}

% =============================================================================
% LISTE E ENUMERAZIONI
% =============================================================================

\section{Liste}

\subsection{Liste Puntate}

\begin{itemize}
    \item Primo elemento
    \item Secondo elemento
    \begin{itemize}
        \item Sotto-elemento
        \item Altro sotto-elemento
    \end{itemize}
    \item Terzo elemento
\end{itemize}

\subsection{Liste Numerate}

\begin{enumerate}
    \item Primo passo
    \item Secondo passo
    \begin{enumerate}
        \item Sotto-passo a
        \item Sotto-passo b
    \end{enumerate}
    \item Terzo passo
\end{enumerate}

\subsection{Liste Descrittive}

\begin{description}
    \item[Stack] Struttura LIFO (Last In First Out)
    \item[Queue] Struttura FIFO (First In First Out)
    \item[Heap] Albero binario con proprietà di ordinamento
\end{description}

% =============================================================================
% TABELLE E FIGURE
% =============================================================================

\section{Tabelle}

\begin{table}[h]
\centering
\begin{tabular}{|l|c|c|}
\hline
\textbf{Algoritmo} & \textbf{Complessità Media} & \textbf{Complessità Peggiore} \\
\hline
QuickSort & \(\BigO{n \log n}\) & \(\BigO{n^2}\) \\
MergeSort & \(\BigO{n \log n}\) & \(\BigO{n \log n}\) \\
HeapSort & \(\BigO{n \log n}\) & \(\BigO{n \log n}\) \\
\hline
\end{tabular}
\caption{Confronto complessità algoritmi di ordinamento}
\label{tab:sorting}
\end{table}

Riferimento alla tabella: vedi \cref{tab:sorting}.

% =============================================================================
% RIFERIMENTI
% =============================================================================

\section{Riferimenti Incrociati}

\subsection{Come Usare Label e Ref}

\begin{example}{Sistema di Label}
Aggiungi label a sezioni, figure, tabelle, equazioni:
  \begin{lstlisting}[language=TeX]
  \section{Titolo}
  \label{sec:titolo}

  \begin{figure}
      ...
      \label{fig:grafico}
  \end{figure}

  \begin{equation}
      ...
      \label{eq:formula}
  \end{equation}
  \end{lstlisting}
\end{example}

\begin{warning}{}
  Per aggiungere riferimenti agli ambienti personalizzati della \Cref{sec:theoretical_environments} e della \Cref{sec:practical_environments} usare le label come proprietà opzionale dell'ambiente, ad esempio:
  \begin{lstlisting}[language=TeX]
    \begin{theorem}[label=thm:esempio]{Titolo Teorema}
    ...
    \end{theorem}
  \end{lstlisting}
  Poi puoi fare riferimento al teorema con \code{\textbackslash{}cref\{thm:esempio\}} per ottenere anche il tipo d'ambiente vicino alla reference, o con \code{\textbackslash{}ref\{thm:esempio\}} per ottenere solo il numero.
  Ad esempio: vedi \ref{thm:esempio}, oppure vedi \cref{thm:esempio}, o ancora vedi \Cref{thm:esempio}.
\end{warning}

\subsection{Tipi di Riferimenti}

\begin{itemize}
    \item \code{\textbackslash{}ref\{label\}} --- Numero dell'elemento, esempio: \ref{sec:practical_environments}
    \item \code{\textbackslash{}eqref\{label\}} --- Riferimento a equazione con parentesi \eqref{eq:gaussian}
    \item \code{\textbackslash{}cref\{label\}} --- Riferimento intelligente (consigliato) esempio: \cref{tab:sorting}
    \item \code{\textbackslash{}Cref\{label\}} --- Come cref ma con maiuscola esempio: \Cref{tab:sorting}
\end{itemize}

% =============================================================================
% BIBLIOGRAFIA
% =============================================================================

\section{Bibliografia (esempio)}

Di seguito un esempio minimo di come usare BibLaTeX nel tuo progetto.  
Nota: inserisci la linea \verb|\addbibresource{bibliography.bib}| nel preambolo del tuo main.tex (non qui), poi crea il file bibliography.bib nella root del progetto.

\begin{lstlisting}[language=TeX]
% Nel preambolo del main.tex:
\addbibresource{bibliography.bib}

% Nel corpo del documento (esempio di citazione):
Come mostrato in \cite{cormen2009introduction}, gli algoritmi di ordinamento...
% ...altro testo...

% Alla fine del documento, prima di \end{document}:
\printbibliography[title={Riferimenti Bibliografici}]
\end{lstlisting}

Esempio di file bibliography.bib:

\begin{lstlisting}[language=TeX, caption=Esempio file bibliography.bib]
@book{cormen2009introduction,
  title     = {Introduction to Algorithms},
  author    = {Cormen, Thomas H. and Leiserson, Charles E. and Rivest, Ronald L. and Stein, Clifford},
  year      = {2009},
  publisher = {MIT Press},
}

@article{dijkstra1959note,
  title = {A note on two problems in connexion with graphs},
  author = {Dijkstra, Edsger W.},
  journal = {Numerische Mathematik},
  year = {1959},
  volume = {1},
  pages = {269--271},
}
\end{lstlisting}




% =============================================================================
% ORGANIZZAZIONE FILE
% =============================================================================

\section{Organizzazione File}

\subsection{Struttura Consigliata}

\begin{lstlisting}[language=bash]
project/
├── main.tex          % File principale
├── csnotes.cls      % Classe personalizzata
├── _chapters/       % Cartella per capitoli
│   ├── 0_intro.tex
│   ├── 1_capitolo1.tex
│   ├── 2_capitolo2.tex
│   └── ...
├── images/          % Cartella per immagini
│   ├── figura1.png
│   ├── figura2.jpg
│   └── ...
├── code/            % Cartella per codice sorgente
│   ├── esempio.py
│   ├── algoritmo.cpp
│   └── ...
└── bibliography.bib % File bibliografia
\end{lstlisting}

\subsection{Includere File Esterni}

\begin{example}{Input e Include}
  \begin{lstlisting}[language=TeX]
  % Nel main.tex
  \section{Capitolo 1}
  \input{_chapters/capitolo1}

  \section{Capitolo 2}
  \input{_chapters/capitolo2}

  % Per codice esterno
  \lstinputlisting[language=Python]{code/esempio.py}
  \end{lstlisting}
\end{example}

% =============================================================================
% PERSONALIZZAZIONE
% =============================================================================

\section{Personalizzazione}

\subsection{Modificare i Colori}

Per modificare i colori degli ambienti, modifica il file \code{csnotes.cls} 
nella sezione \q{DEFINIZIONE COLORI}:

\begin{lstlisting}[language=TeX]
% Nel file csnotes.cls
\definecolor{defcolor}{RGB}{0,102,204}   % Blu per definizioni
\definecolor{thmcolor}{RGB}{220,50,47}   % Rosso per teoremi
\definecolor{excolor}{RGB}{42,161,152}   % Teal per esempi
% ... etc
\end{lstlisting}

\begin{note}{Colori RGB}
Puoi usare qualsiasi valore RGB (0--255 per ogni componente) o nomi predefiniti
come \code{red}, \code{blue}, \code{green}, ecc.
\end{note}

\subsection{Modificare Font e Margini}

\begin{lstlisting}[language=TeX]
% Nel file csnotes.cls

% Dimensione base del font (default: 11pt)
\LoadClass[a4paper,11pt]{article}

% Margini (default: 2.5cm)
\RequirePackage[margin=2.5cm, top=3cm, bottom=3cm]{geometry}
\end{lstlisting}

\subsection{Aggiungere Nuovi Ambienti}

\begin{example}{Creare Ambiente Personalizzato}
Per aggiungere un nuovo ambiente (es.\ \q{Esercizio}):
\begin{lstlisting}[language=TeX]
% Nel file csnotes.cls, dopo gli altri ambienti

% Definisci il colore
\definecolor{excolor}{RGB}{255,127,0}  % Arancione

% Crea l'ambiente
\newtcolorbox{exercise}[2][]{
    theorembox=excolor,
    title={Esercizio~#2},
    #1
}
% Aggiungi localizzazione per il tipo di ambiente
\crefname{exercise}{esercizio}{esercizi}
\Crefname{exercise}{Esercizio}{Esercizi}
\end{lstlisting}

Poi usalo così:
\begin{lstlisting}[language=TeX]
\begin{exercise}{Titolo}
Testo dell'esercizio...
\end{exercise}
\end{lstlisting}
\end{example}

% =============================================================================
% TIPS & TRICKS
% =============================================================================

\section{Suggerimenti}

\begin{note}{Best Practices}
\begin{enumerate}
    \item \textbf{Consistenza}: Usa sempre lo stesso ambiente per lo stesso 
    tipo di contenuto
    \item \textbf{Brevità}: Mantieni i box relativamente brevi per evitare 
    problemi con i page break
    \item \textbf{Keywords}: Usa \code{\textbackslash{}keyword\{\}} per 
    evidenziare termini importanti
    \item \textbf{Organizzazione}: Dividi documenti lunghi in file separati
    \item \textbf{Commenti}: Usa i commenti (\code{\%}) per annotazioni personali
\end{enumerate}
\end{note}

\begin{warning}{Errori Comuni}
\begin{itemize}
    \item Non dimenticare di compilare due volte per aggiornare i riferimenti
    \item Usa sempre \code{\textbackslash(...\textbackslash)} invece di 
    \code{\$...\$} per la matematica inline
    \item Controlla che i pacchetti richiesti siano installati
    \item Non modificare il file \code{csnotes.cls} a meno che tu non sappia 
    cosa stai facendo
\end{itemize}
\end{warning}

% =============================================================================
% RISORSE AGGIUNTIVE
% =============================================================================

\section{Risorse Utili}

\subsection{Documentazione}

\begin{itemize}
    \item \textbf{tcolorbox}: \url{http://mirrors.ctan.org/macros/latex/contrib/tcolorbox/tcolorbox.pdf}
    \item \textbf{listings}: \url{http://mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf}
    \item \textbf{amsmath}: \url{http://mirrors.ctan.org/macros/latex/required/amsmath/amsldoc.pdf}
    \item \textbf{tikz}: \url{http://mirrors.ctan.org/graphics/pgf/base/doc/pgfmanual.pdf}
\end{itemize}

\makebackcover{}

% =============================================================================
% FINE
% =============================================================================

\end{document}
Preview
UniNotes preview
UniNotes LaTeX Template | Bibby | Bibby AI