Symbole “avertissement” (source) :
\usepackage{fourier} \warning
Symbole antislash :
\backslash \lstinline{\}
Intervalles d'entiers (source) :
\usepackage{stmaryrd} l'intervalle $\llbracket 0, 100 \rrbracket$
Utiliser le paquet footmisc:
\usepackage[bottom]{footmisc}
Créer une note de bas de page sans référence dans le texte (source):
% Déclaration de la commande \freefootnote: \let\svthefootnote\thefootnote \newcommand\freefootnote[1]{% \let\thefootnote\relax% \footnotetext{#1}% \let\thefootnote\svthefootnote% } % Utilisation \freefootnote{Foo}
\interfootnotelinepenalty=10000
May, 9\textsuperscript{th} 2020
\usepackage{ulem} Du texte \sout{barré}.
Il faut utiliser
\usepackage[normalem]{ulem}
sinon la bibliographie souligne les titres au lieu de les mettre en italique (source).
\usepackage[most]{tcolorbox} \newenvironment{fondgris}{ \begin{tcolorbox}[colback=black!7!white,colframe=black!10!white]} {\end{tcolorbox}} % ... \begin{fondgris} machin \end{fondgris}
\usepackage{mdframed} \begin{figure} \begin{mdframed}[backgroundcolor=green!10,linecolor=white] \centering \includegraphics[width=\linewidth]{img.png} \caption{Légende} \end{mdframed} \end{figure}
\newlength{\mylistspace} \setlength{\mylistspace}{1em} \begin{itemize} \setlength{\itemsep}{\mylistspace} \item A \item B \end{itemize}
\usepackage{enumitem} \setlist{nolistsep} % peut être placé au début du document \begin{itemize}[noitemsep] \item one \item two \item three \end{itemize} % ou sans le \setlist : \begin{itemize}[noitemsep,nolistsep] \item foo \item bar \item baz \end{itemize}
Pour les listes de descriptions :
\setlist[description]{leftmargin=5mm}
\usepackage{enumitem} \setlist[itemize]{label=\textbullet}
\begin{enumerate} \setcounter{enumi}{4} % 4 pour démarrer la liste à 5 \item fifth element \end{enumerate}
\usepackage{multicol} \begin{multicols}{2} \begin{itemize} \item item 1 \item item 2 \item item 3 \item item 4 \item item 5 \item item 6 \end{itemize} \end{multicols}
\tiny\scriptsize\footnotesize\small\normalsize\large\Large\LARGE\huge\HugeLes mêmes sont disponibles pour Beamer, sans l'anti-slash.
https://tex.stackexchange.com/a/319000
\colorbox{green}{text avec du vert derrière}
https://www.latex4technics.com/?note=y99
\begin{itemize} \item Noir \item[\textcolor{blue}{\textbullet}] Bleu \item Noir \end{itemize}
\definecolor{mycolor}{rgb}{1,0.2,0.3} % rgb en minuscules : les valeurs sont entre 0 et 1 \definecolor{mycolor}{RGB}{255,51,76} % rgb en majuscules : les valeurs sont entre 0 et 255
Ces couleurs peuvent aussi être utilisées dans des figures Tikz.
\begin{figure}[h] \centering \includegraphics[scale=0.7]{img.pdf} \caption{Légende} \label{fig:label} \end{figure}
\fcolorbox{black}{white}{\includegraphics[scale=0.5]{block-calc.png}}
\begin{figure}[h] \centering \begin{minipage}[b]{0.45\textwidth} \centering \includegraphics{...} \caption{Algorithme naïf de collective} \label{fig:collective-dummy} \end{minipage}\hfill \begin{minipage}[b]{0.45\textwidth} \centering \includegraphics{...} \caption{Algorithme de collective avec arbre binomial} \label{fig:collective-binomial} \end{minipage} \end{figure}
Le [b] des minipages permet de les aligner le bord bas.
\usepackage{caption} \usepackage{subcaption} \begin{document} \begin{figure} \begin{subfigure}{.5\textwidth} \centering % include first image \includegraphics[width=.8\linewidth]{log_demo1.png} \caption{Put your sub-caption here} \label{fig:sub-first} \end{subfigure} \begin{subfigure}{.5\textwidth} \centering % include second image \includegraphics[width=.8\linewidth]{log_demo2.png} \caption{Put your sub-caption here} \label{fig:sub-second} \end{subfigure} \newline % no empty line before or after the \newline \begin{subfigure}{.5\textwidth} \centering % include third image \includegraphics[width=.8\linewidth]{log_demo1.png} \caption{Put your sub-caption here} \label{fig:sub-third} \end{subfigure} \begin{subfigure}{.5\textwidth} \centering % include fourth image \includegraphics[width=.8\linewidth]{log_demo2.png} \caption{Put your sub-caption here} \label{fig:sub-fourth} \end{subfigure} \caption{Put your caption here} \label{fig:fig} \end{figure}
Une image à gauche et deux verticalement à droite: https://tex.stackexchange.com/a/66960
\includegraphics[trim={5cm 0 0 0},clip,width=\textwidth]{example-image-a}
La syntaxe est trim={<left> <lower> <right> <upper>}.
Il est possible de fournir une légende alternative, qui apparaîtra dans la liste des figures :
\caption[Dans la liste des figures]{Sous la figure}
\usepackage{tikz} \usetikzlibrary{positioning} \begin{tikzpicture}[remember picture,overlay,shift={(current page.north east)}] \node[anchor=north east,xshift=-1cm,yshift=-1cm]{\includegraphics[width=1cm]{example-image-a}}; \end{tikzpicture}
\usepackage{mathptmx}
Voici un \href{https://perdu.com}{site web}
Pour colorer ces liens :
\usepackage{hyperref} \hypersetup{ colorlinks=true, urlcolor=cyan, }
\hyphenation{op-tical net-works semi-conduc-tor} % ou juste: op\-tical
La commande \sloppy, placée avant \begin{document}, indique à LaTeX qu'il peut être moins strict sur où et quand couper les mots. Permet donc de forcer parfois la coupe d'un mot, quand par défaut il ne le fait pas.
Sous Debian, installer le paquet texlive-babel-french (ne semble être présent que dans sid…) ou texlive-lang-french.
This is a reference to the graph appendix \ref{appendix:graph} \begin{appendices} \section{Graph Appendix} \label{appendix:graph} This is the graph appendix... \section{Another Appendix} \end{appendices}
\section{Introduction} \label{introduction} This is an introductory paragraph with some dummy text. This section will be later referenced. As mentioned in section \ref{introduction}, different elements can be referenced within a document
La \figurename~\ref{fig:foo} est sur la page \pageref{fig:foo}.
\usepackage{tabularx} \begin{tabularx}{\textwidth}{|l|X|} Use Case Navn: & Opret Server \\ Scenarie: & At oprette en server med bestemte regler som tillader folk at spille sammen. More Text more text More Text \\ \end{tabularx}
Le X (et donc le paquet tabularx) permet de faire aller à la ligne le texte qui ne rentre pas dans la largeur des cellules.
Sur toute la largeur de la page, en le faisant déborder de façon égale dans les marges à gauche et à droite (source) :
\begin{table} \caption{Table caption} \makebox[\linewidth]{ \begin{tabularx}{6in}{|X|X|X|X|}\hline % ... \end{tabularx} } \end{table}
Peut être utile pour éviter qu'un tableau ne se retrouve avant le titre de sa section, par exemple (source) :
\begin{table}[H] % ... \end{table}
L'utilisation de \clearpage peut aussi aider.
\usepackage{makecell}
& \makecell{retour\\à\\ligne} &
On peut préciser l'alignement avec \makecell[l]{}, par exemple.
Si la colonne a un alignement p{3cm}, on peut utiliser \newline au lieu de \\ dans la cellule (source).
foo & bar \\[5mm] foz & baz
% inside a cell, with content "stuff", adds a space above: \rule{0pt}{2em}stuff
\begin{table} \begin{minipage}[t]{0.4\textwidth} \begin{center} \begin{tabular}{|c|c|} % ... \end{tabular} \caption{Caption 1.} \label{tab:label1} \end{center} \end{minipage} \hfill \begin{minipage}[t]{0.55\textwidth} \begin{center} \begin{tabular}{|c|c|c|} % ... \end{tabular} \caption{Caption 2.} \label{tab:label2} \end{center} \end{minipage} \end{table}
https://tex.stackexchange.com/questions/50349/color-only-a-cell-of-a-table
\usepackage{colortbl} &\cellcolor{blue!25}0 & ... \\
Sans qu'ils soient convertis en un long tiret:
{-}{-}
{\noindent Ligne 1 }
https://fr.overleaf.com/learn/latex/Spacing_in_math_mode
Du plus petit au plus grand :
\!\,\:\;\ (un espace après l'antislash)\quad\qquad
Utiliser \hskip\algorithmicindent le nombre de fois nécessaires au début de la ligne (source). Utiliser \par juste avant pour aller à la ligne.
Au début de l'algorithme (source) :
\hspace*{\algorithmicindent} \textbf{Input} \\ \hspace*{\algorithmicindent} \textbf{Output} \begin{algorithmic}[1]
\usepackage{listings}
\lstset{ inputencoding=utf8, extendedchars=true, literate={á}{{\'a}}1 {ã}{{\~a}}1 {é}{{\'e}}1, }
Voir https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue
Définir pour chaque langage:
\lstdefinestyle{ruby-style}{ belowcaptionskip=1\baselineskip, breaklines=true, frame=L,/usr/lib64/openmpi/ xleftmargin=\parindent, language=Ruby, showstringspaces=false, basicstyle=\footnotesize\ttfamily, keywordstyle=\bfseries\color{green!40!black}, commentstyle=\itshape\color{purple!40!black}, identifierstyle=\color{blue}, stringstyle=/usr/lib64/openmpi/\color{orange}, }
Utiliser ensuite:
\begin{lstlisting}[style=ruby-style] config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" \end{lstlisting}
\usepackage[svgnames]{xcolor} \definecolor{diffstart}{named}{Grey} \definecolor{diffincl}{named}{Green} \definecolor{diffrem}{named}{OrangeRed} \usepackage{listings} \lstdefinelanguage{diff}{ basicstyle=\ttfamily\small, morecomment=[f][\color{diffstart}]{@@}, morecomment=[f][\color{diffincl}]{+\ }, morecomment=[f][\color{diffrem}]{-\ }, } \begin{lstlisting}[language=diff] @@ -85,8 +85,8 @@ - foo + bar \end{lstlisting}
\documentclass{article} \usepackage{lmodern} % for bold teletype font \usepackage{amsmath} % for \hookrightarrow \usepackage{xcolor} % for \textcolor \usepackage{listings} \lstset{ basicstyle=\ttfamily, columns=fullflexible, frame=single, breaklines=true, postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}, % permet d'avoir une flèche indiquant le retour à la ligne } \begin{document} \begin{lstlisting}[language=java] public class MeasureStationControllerV0Test { MeasureStationControllerV0 controller; MeasureStation ms = new MeasureStation(); MeasureStationConfiguration config = new MeasureStationConfiguration(); DataServer dataserver = new DataServer(); \end{lstlisting} \end{document}
\lstinputlisting[firstline=3]{codes/difference_or.c}
\usetikzlibrary{tikzmark} % Command to place a TikZ anchor at the current position \newcommand{\mytikzmark}[1]{% \tikz[overlay,remember picture,baseline] \coordinate (#1) at (0,0) {};} \newcommand{\highlight}[2]{ \draw[draw=none,fill=yellow,opacity=0.3] ([xshift=-2pt,yshift=9pt]#1) rectangle ([xshift=2pt,yshift=-4pt]#2); } \begin{lstlisting}[escapechar=@] @\mytikzmark{hl1Start}@int est_pair(int n); int est_impair(int n);@\mytikzmark{hl2End}@ // foo \end{lstlisting} \begin{tikzpicture}[remember picture, overlay] \highlight{hl1Start}{hl2End} \end{tikzpicture}
\lstset{ % ... morekeywords={inline,restrict}, % ... }
Utiliser l'environnement flushright.
\usepackage{lipsum} \lipsum
\if 0 commente un large bloc de texte \fi
\def\plotScale{1}
Puis on utilise simplement \plotScale à la place de 1.
Le paquet xfp permet de faire des calculs avec la commande \fpeval{calcul}.
Moyenne de deux termes (source) :
\def\middle#1#2{\fpeval{(#1+#2)/2}}
Puis :
\middle{1}{2}
Pour calculer un modulo (source) :
\newcommand{\modulo}[2]{%
(trunc(#1-(#2*trunc(#1/#2,0)),0))
}
\fpeval{\modulo[5}{3}}
\documentclass{article} \newif\iflong \longtrue % switch to false in short version \newcommand{\inLongVersion}[1]{\iflong #1\fi} \begin{document} Overhead the albatross hangs motionless upon the air. % \inLongVersion{And deep beneath the rolling waves in labyrinths of coral caves.} \end{document}
\ifnum0\newrank>3 foo \else bar \fi
Pour faire un switch :
\newcommand\commColor[1]{% \ifcase\fpeval{floor(#1/4)}% cyan% \or% magenta% \or% teal!60% \or% violet!60% \else% black% \fi% }
Il est possible d'itérer sur des listes (source):
\usepackage{pgffor} \foreach \x in {0.05,0.135,0.2275,0.315,0.40,0.49,0.575,0.7225,0.8075,0.895,0.996} { \draw[green,ultra thick,dashed] (\x,0.01)-- (\x,0.95); }
Également de générer des séquences:
\foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; }
Utile pour changer le numéro de départ de la numérotation:
\setcounter{page}{2}
Pour laisser LaTeX équilibrer l'utilisation verticale des pages pour que toutes les pages se terminent à la même hauteur :
% avant le \begin{document} \flushbottom
Pour, au contraire, ne pas ajouter d'espaces entre les paragraphes pour tenter d'égaliser :
% avant le \begin{document} \raggedbottom
\usepackage[colorlinks,linkcolor=purple]{hyperref} % pour avoir des liens dans la table des matières \tableofcontents
\renewcommand{\contentsname}{Sommaire}
\chapter[Titre dans la table des matières]{Titre dans la page du chapitre}
\usepackage[colorlinks,urlcolor=magenta,linkcolor=purple,citecolor=red]{hyperref} \usepackage[toc,acronym]{glossaries} % à garder après hyperref pour avoir des liens vers le glossaire \makeglossaries \begin{document} % placer la définition des acronymes dans un fichier acronymes.tex \newacronym{espace}{ESPACE}{Espace Supplémentaire Pour Améliorer la Cohérence des Éléments} \newacronym{faq}{FAQ}{Foire Aux Questions} Je vais parler de l'\gls{espace}. Je vais encore évoquer l'\gls{espace}. Pour ne pas afficher la définition la première fois : \acrshort{faq} \printglossaries \end{document}
Exemple de règles Makefile pour compiler tout ça :
main.glo: acronymes.tex pdflatex main.tex makeglossaries main main.pdf: *.tex *.bib main.glo rubber --unsafe --pdf main.tex
Faire apparaître la bibliographie:
\usepackage[nottoc, notlof, notlot]{tocbibind}
\bibliographystyle{plain} \bibliography{bibliography} % fichier bibliography.bib
Compilation:
pdflatex fichier.tex bibtex fichier # fichier.aux pdflatex fichier.tex # 2 fois
Mettre le texte entre accolades.
@misc{leLabel, author={l'auteur}, title={le titre du site}, year={2009}, howpublished="\url{http://leSite.com}" }
Par défaut, LaTeX classe les références par ordre alphabétique.
Pour utiliser l'ordre d'apparition des références dans le document, il faut utiliser:
\bibliographystyle{unsrt}
Visible notamment dans les en-têtes (source).
\renewcommand\bibname{References} % affichage de bibliographie
\usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \rhead{Version préliminaire} \cfoot{\thepage}
Notamment Contents pour le sommaire (source) :
\fancyhead[RE]{\slshape \nouppercase{\rightmark}} \fancyhead[LO]{\slshape \nouppercase{\leftmark}}
\newgeometry{left=3cm,bottom=0.1cm} % écrase toutes les marges définies, même si une seule valeur change, il faut tout réécrire % section avec des marges différentes \restoregeometry
\usepackage[showframe]{geometry}
Pour ne pas avoir à modifier les options du paquet geometry, il est aussi possible d'utiliser directement le paquet éponyme :
\usepackage{showframe}
\newpage \clearpage % fonctionne aussi dans le cas du double-colonne, s'il y a des flottants à positionnner
Pour par exemple empêcher que deux paragraphes se retrouvent sur deux pages distinctes (source) :
\needspace{4\baselineskip} % les 4 lignes suivantes seront toujours groupées sur une même page
\usepackage{xcolor} % avant \begin{document}: \newcommand\todo[1]{\textcolor{red}{TODO: #1}} % utilisation: \todo{à faire !} \usepackage{xspace} \newcommand{\cholesky}{\textsc{Cholesky}\xspace} % \xspace to add a space after the command \cholesky
https://www.overleaf.com/learn/latex/Environments
\newenvironment{bgfigure}[1]{\begin{figure}\begin{mdframed}[backgroundcolor=#1,linecolor=white]}{\end{mdframed}\end{figure}} % utilisation: \begin{bgfigure}{green!10} % contenu \end{bgfigure}
Pour moderncv, il faut installer le paquet texlive-fonts-extra pour avoir les icônes FontAwesome.
find . -name "*.tex" -exec aspell --lang=fr --mode=tex check "{}" \;
Autre correcteur : https://languagetool.org/fr/dev
\usepackage{pdfpages} \includepdf[pages=-]{../poster/poster.pdf} % inclut toutes les pages du PDF
Outil pour facilement compiler tout un fichier LaTeX (aussi avec BibTeX !) en une commande.
Installer le paquet rubber.
rubber --pdf file.tex
Permet de visualiser les différence entre deux versions d'un document LaTeX. Commande à lancer pour tous les fichiers sources constituant un document LaTeX (il ne suffit pas de l'exécuter sur le fichier principal).
Pour MacOS:
for f in *.tex; do /Library/TeX/Root/bin/x86_64-darwin/latexdiff --encoding=utf8 -c "PICTUREENV=(?:picture|tikzpicture|DIFnomarkup)[\w\d*@]*" $f ../../v01/report/$f > ../../diff/report/$f; done;
L'option PICTUREENV permet de ne pas chercher les différences dans les environnements TikZ.
Avec un gestionnaire de version:
latexdiff-vc -r 1c70fb4 rr.tex
Avec la commande texcount.
\begin{questions} \setcounter{question}{n-1} \question Foo? \end{questions}