====== LaTeX ====== * [[latex:tikz|TikZ]] * [[latex:beamer|Beamer]] * [[https://fr.wikipedia.org/wiki/Table_de_symboles_math%C3%A9matiques]] * Rédaction de formules mathématiques: [[http://dalissier.perso.math.cnrs.fr/pdf/latex/chapitre4.pdf]] * [[http://detexify.kirelabs.org/classify.html]] * [[https://github.com/dspinellis/latex-advice|Advice for writing LaTeX documents]] ==== Symboles ==== * [[https://mirrors.ircam.fr/pub/CTAN/info/symbols/comprehensive/symbols-a4.pdf]] * [[https://la-bibliotex.fr/2019/02/10/des-icones-a-infini-dans-latex/]] Symbole "avertissement" ([[https://tex.stackexchange.com/questions/159669/how-to-print-a-warning-sign-triangle-with-exclamation-point|source]]) : \usepackage{fourier} \warning Symbole antislash : \backslash \lstinline{\} Intervalles d'entiers ([[https://tex.stackexchange.com/questions/304662/typesetting-an-integer-interval|source]]) : \usepackage{stmaryrd} l'intervalle $\llbracket 0, 100 \rrbracket$ ==== Ne pas afficher la date dans le titre ==== [[https://tex.stackexchange.com/questions/2760/omitting-the-date-when-using-maketitle|Source]] \date{} ==== Notes de bas de page ==== === Les placer en bas de la page === Utiliser le paquet ''footmisc'': \usepackage[bottom]{footmisc} === Sans numéro === Créer une note de bas de page sans référence dans le texte ([[https://tex.stackexchange.com/questions/562763/footnote-without-reference/562767|source]]): % Déclaration de la commande \freefootnote: \let\svthefootnote\thefootnote \newcommand\freefootnote[1]{% \let\thefootnote\relax% \footnotetext{#1}% \let\thefootnote\svthefootnote% } % Utilisation \freefootnote{Foo} === Empêcher les notes de s'étendre sur plusieurs pages === [[https://texfaq.org/FAQ-splitfoot|Source]] \interfootnotelinepenalty=10000 ==== Texte en exposant ==== May, 9\textsuperscript{th} 2020 ==== Barrer du texte ==== [[https://fr.wikibooks.org/wiki/LaTeX/Mise_en_forme_du_texte_(avanc%C3%A9)#Mod%C3%A8les_de_polices_de_caract%C3%A8res|Source]] \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 ([[https://stackoverflow.com/questions/51132189/styling-of-biblography-change-underline-to-italic-latex|source]]). ==== Faire un cadre coloré ==== === Cadre gris arrondi === \usepackage[most]{tcolorbox} \newenvironment{fondgris}{ \begin{tcolorbox}[colback=black!7!white,colframe=black!10!white]} {\end{tcolorbox}} % ... \begin{fondgris} machin \end{fondgris} === Mettre un fond aux figures === \usepackage{mdframed} \begin{figure} \begin{mdframed}[backgroundcolor=green!10,linecolor=white] \centering \includegraphics[width=\linewidth]{img.png} \caption{Légende} \end{mdframed} \end{figure} ==== Définir l'espacement entre les paragraphes ==== \setlength{\parskip}{0.2cm} % définit l'espacement entre chaque paragraphe ==== Listes ==== === Changer l'espacement dans les listes === [[https://tex.stackexchange.com/questions/12373/how-to-change-the-space-between-the-itemize-items-in-latex|Source]] \newlength{\mylistspace} \setlength{\mylistspace}{1em} \begin{itemize} \setlength{\itemsep}{\mylistspace} \item A \item B \end{itemize} [[https://tex.stackexchange.com/a/109608|Source]] \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} === Changer le retrait des listes === * [[https://fr.overleaf.com/learn/latex/Lists]] * [[https://tex.stackexchange.com/questions/170525/itemize-left-margin]] Pour les listes de descriptions : \setlist[description]{leftmargin=5mm} === Changer l'aspect des puces === \usepackage{enumitem} \setlist[itemize]{label=\textbullet} === Démarrer une liste à un nombre particulier === [[https://tex.stackexchange.com/questions/142/how-can-i-make-an-enumerate-list-start-at-something-other-than-1|Source]] \begin{enumerate} \setcounter{enumi}{4} % 4 pour démarrer la liste à 5 \item fifth element \end{enumerate} === Répartir les éléments sur plusieurs colonnes === [[https://tex.stackexchange.com/questions/194426/split-itemize-into-multiple-columns|Source]] \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} ==== Tailles de texte ==== * ''\tiny'' * ''\scriptsize'' * ''\footnotesize'' * ''\small'' * ''\normalsize'' * ''\large'' * ''\Large'' * ''\LARGE'' * ''\huge'' * ''\Huge'' Les mêmes sont disponibles pour Beamer, sans l'anti-slash. ==== Couleurs ==== * [[https://en.wikibooks.org/wiki/LaTeX/Colors]] === Changer la couleur d'arrière-plan du texte === [[https://tex.stackexchange.com/a/319000]] \colorbox{green}{text avec du vert derrière} === Changer la couleur d'une puce d'une liste === https://www.latex4technics.com/?note=y99 \begin{itemize} \item Noir \item[\textcolor{blue}{\textbullet}] Bleu \item Noir \end{itemize} === Définir des couleurs RGB === \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. ==== Inclure une image ==== \begin{figure}[h] \centering \includegraphics[scale=0.7]{img.pdf} \caption{Légende} \label{fig:label} \end{figure} === Ajouter une bordure à l'image === [[https://tex.stackexchange.com/questions/20640/how-to-add-border-for-an-image|source]] \fcolorbox{black}{white}{\includegraphics[scale=0.5]{block-calc.png}} === Deux images côte à côte === [[https://tex.stackexchange.com/questions/5769/two-figures-side-by-side|Source]] \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. === 4 images en mosaïque, sous-figures === [[https://shantoroy.com/latex/add-subfig-in-latex/|Source]] \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]] === Rogner une image === [[https://tex.stackexchange.com/questions/57418/crop-an-inserted-image|Source]] \includegraphics[trim={5cm 0 0 0},clip,width=\textwidth]{example-image-a} La syntaxe est ''trim={ }''. === Changer la légende pour la liste des figures === 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} === Positionner de façon absolue === [[https://tex.stackexchange.com/questions/386324/place-image-in-absolute-position-independently-from-text|Source]] \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} === Centrer la légende === [[https://tex.stackexchange.com/questions/95207/how-to-center-a-specific-caption|Source]] \captionsetup{justification=centering} \caption{Order A\\\texttt{block:block}} ==== Utiliser la police Times New Roman ==== [[https://tex.stackexchange.com/questions/153168/how-to-set-document-font-to-times-new-roman-by-command|Source]] \usepackage{mathptmx} ==== URLs ==== === Faire des retours à la ligne dans les URL === [[https://www.developpez.net/forums/d1229223/autres-langages/autres-langages/latex/debuter/url-ligne-continue-marges/#post6723190|Source]] \usepackage[hyphens]{url} Coupe les URLs également au niveau des tirets. === Mettre un texte avec un lien web === * [[https://www.overleaf.com/learn/latex/Hyperlinks#Linking_web_addresses]] Voici un \href{https://perdu.com}{site web} Pour colorer ces liens : \usepackage{hyperref} \hypersetup{ colorlinks=true, urlcolor=cyan, } ==== Préciser comment couper les mots pour les retours à la ligne ==== [[https://en.wikibooks.org/wiki/LaTeX/Text_Formatting#Hyphenation|Source]] \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. ==== Utiliser Babel en français ==== Sous Debian, installer le paquet ''texlive-babel-french'' (ne semble être présent que dans sid...) ou ''texlive-lang-french''. ==== Références ==== === Aux annexes === [[https://tex.stackexchange.com/questions/192769/how-do-i-refer-appendix-in-latex-so-as-to-display-a-or-b-in-my-paper|Source]] 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} === Aux sections === [[https://www.overleaf.com/learn/latex/Cross_referencing_sections_and_equations#Referencing_sections_and_chapters|Source]] \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 page d'une référence === La \figurename~\ref{fig:foo} est sur la page \pageref{fig:foo}. ==== Faire des tableaux ==== * [[https://fr.wikibooks.org/wiki/LaTeX/Faire_des_tableaux]] * http://www.tablesgenerator.com/ * [[https://tex.stackexchange.com/questions/166743/automatic-line-break-in-tabular]] \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. === Centrer le tableau === Sur toute la largeur de la page, en le faisant déborder de façon égale dans les marges à gauche et à droite ([[https://latex.org/forum/viewtopic.php?t=19674|source]]) : \begin{table} \caption{Table caption} \makebox[\linewidth]{ \begin{tabularx}{6in}{|X|X|X|X|}\hline % ... \end{tabularx} } \end{table} === Forcer l'emplacement du tableau === Peut être utile pour éviter qu'un tableau ne se retrouve avant le titre de sa section, par exemple ([[https://tex.stackexchange.com/questions/297564/why-is-my-table-before-the-section-title|source]]) : \begin{table}[H] % ... \end{table} L'utilisation de ''\clearpage'' peut aussi aider. === Forcer le retour à la ligne dans une cellule === \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 ([[https://stackoverflow.com/questions/3068555/how-to-insert-manual-line-breaks-inside-latex-tables|source]]). === Préciser l'espace entre deux lignes de tableaux === [[https://tex.stackexchange.com/questions/26690/how-to-add-extra-spaces-between-rows-in-tabular-environment|Source]] foo & bar \\[5mm] foz & baz [[https://tex.stackexchange.com/questions/31672/column-and-row-padding-in-tables|Source]] % inside a cell, with content "stuff", adds a space above: \rule{0pt}{2em}stuff === Deux tableaux côte-à-côte === [[https://tex.stackexchange.com/questions/2832/how-can-i-have-two-tables-side-by-side|Source]] \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} === Changer la couleur de fond d'une cellule === [[https://tex.stackexchange.com/questions/50349/color-only-a-cell-of-a-table]] \usepackage{colortbl} &\cellcolor{blue!25}0 & ... \\ ==== Ajouter deux tirets à la suite ==== Sans qu'ils soient convertis en un long tiret: {-}{-} ==== Ajouter un espace au début d'une ligne ==== [[https://tex.stackexchange.com/questions/37343/how-can-i-force-a-hspace-at-the-beginning-of-a-line|Source]] \texttt{int main()\\ \{\\ \phantom{x}\hspace{3ex}return 0;\\ \}\\} ==== Enlever l'alinéa au début d'un paragraphe ==== [[https://www.mathematex.fr/viewtopic.php?t=13443|Source]] {\noindent Ligne 1 } ==== Formules mathématiques ==== === Espaces horizontaux === [[https://fr.overleaf.com/learn/latex/Spacing_in_math_mode]] Du plus petit au plus grand : * ''\!'' * rien, pas d'espace, coller les caractères * ''\,'' * ''\:'' * ''\;'' * ''\ '' (un espace après l'antislash) * ''\quad'' * ''\qquad'' ==== Algorithmes ==== * https://distrib-coffee.ipsl.jussieu.fr/pub/mirrors/ctan/macros/latex/contrib/algorithmicx/algorithmicx.pdf === Ajouter une indentation === Utiliser ''\hskip\algorithmicindent'' le nombre de fois nécessaires au début de la ligne ([[https://tex.stackexchange.com/questions/33979/include-a-line-break-in-algorithmic-while-maintaining-indentation|source]]). Utiliser ''\par'' juste avant pour aller à la ligne. === Ajouter les entrées et sorties === Au début de l'algorithme ([[https://tex.stackexchange.com/questions/355937/how-to-add-input-and-output-before-algorithm-procedure|source]]) : \hspace*{\algorithmicindent} \textbf{Input} \\ \hspace*{\algorithmicindent} \textbf{Output} \begin{algorithmic}[1] ==== Listings de code ==== \usepackage{listings} === Avoir des accents === [[https://tex.stackexchange.com/questions/24528/having-problems-with-listings-and-utf-8-can-it-be-fixed|Source]] \lstset{ inputencoding=utf8, extendedchars=true, literate={á}{{\'a}}1 {ã}{{\~a}}1 {é}{{\'e}}1, } Voir [[https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue]] === Changer de langage === 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} === Mettre en forme un diff === [[https://tex.stackexchange.com/questions/105995/is-there-a-ready-solution-to-typeset-a-diff-file|Source]] \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} === Faire des retours à la ligne === [[https://tex.stackexchange.com/questions/116534/lstlisting-line-wrapping/116572|Source]] \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} === Préciser à partir de quelle ligne inclure un fichier === \lstinputlisting[firstline=3]{codes/difference_or.c} === Surligner du code === [[https://stackoverflow.com/questions/1304315/highlighting-a-chunk-of-code-within-a-lstlisting|Source]] \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} === Ajouter des mots-clés au langage === [[https://tex.stackexchange.com/questions/28229/extend-a-language-with-additional-keywords|Source]] \lstset{ % ... morekeywords={inline,restrict}, % ... } ==== Aligner le texte à droite ==== Utiliser l'environnement ''flushright''. ==== Faux texte ==== * [[https://devmath.fr/informatique/lorem-ipsum-lipsum-latex/]] \usepackage{lipsum} \lipsum ==== Commentaires ==== \if 0 commente un large bloc de texte \fi ==== Programmation === === Définir des variables === \def\plotScale{1} Puis on utilise simplement ''\plotScale'' à la place de ''1''. === Calculs === Le paquet ''xfp'' permet de faire des calculs avec la commande ''\fpeval{calcul}''. Moyenne de deux termes ([[https://tex.stackexchange.com/questions/425065/making-a-function-to-calculate-average|source]]) : \def\middle#1#2{\fpeval{(#1+#2)/2}} Puis : \middle{1}{2} Pour calculer un modulo ([[https://tex.stackexchange.com/questions/34424/how-do-i-calculate-n-modulo-3-in-latex|source]]) : \newcommand{\modulo}[2]{% (trunc(#1-(#2*trunc(#1/#2,0)),0)) } \fpeval{\modulo[5}{3}} === Conditions === [[https://tex.stackexchange.com/a/578797|Source]] \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} [[https://tex.stackexchange.com/questions/75485/how-to-create-a-conditional-which-checks-if-one-or-another-condition-is-true-in|Source]] \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% } === Boucles === Il est possible d'itérer sur des listes ([[https://tex.stackexchange.com/questions/252067/question-in-using-foreach-to-iterate-over-lists|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}; } ==== Numéros de page ==== === Cacher le numéro de page === Sur une page : \thispagestyle{empty} Sur toutes les pages : \pagestyle{empty} === Redéfinir le compteur de page === Utile pour changer le numéro de départ de la numérotation: \setcounter{page}{2} ==== Espaces verticaux ==== === Manuellement === Fixes : \vspace{0.5cm} Proportionnels : \vspace*{\stretch{1}} % ou \vfill === Automatiquement === * [[https://latexref.xyz/_005craggedbottom.html]] * [[https://tex.stackexchange.com/questions/65355/flushbottom-vs-raggedbottom]] 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 ==== Tables des matières ==== === Créer une table des matières === \usepackage[colorlinks,linkcolor=purple]{hyperref} % pour avoir des liens dans la table des matières \tableofcontents === Ajouter un élément dans la table des matières === [[https://www.overleaf.com/learn/latex/Table_of_contents|Source]] \addcontentsline{toc}{section}{Introduction} \section*{Introduction} === Changer le titre de la table des matières === [[https://tex.stackexchange.com/questions/28516/how-to-change-the-title-of-toc|Source]] \renewcommand{\contentsname}{Sommaire} === Utiliser un titre différent dans la table des matières === \chapter[Titre dans la table des matières]{Titre dans la page du chapitre} ==== Glossaires ==== * [[https://www.xm1math.net/doculatex/glossaries.html]] * [[https://fr.overleaf.com/learn/latex/Glossaries]] \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 ==== Bibliographie ==== * [[https://www.tuteurs.ens.fr/logiciels/latex/bibtex.html]] * [[https://fr.wikibooks.org/wiki/LaTeX/Gestion_de_la_bibliographie]] 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 === Imposer les majuscules === Mettre le texte entre accolades. === Citer une URL === @misc{leLabel, author={l'auteur}, title={le titre du site}, year={2009}, howpublished="\url{http://leSite.com}" } === Changer l'ordre de numérotation === [[https://stackoverflow.com/a/144640|Source]] 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} === Changer le titre de la bibliographie === Visible notamment dans les en-têtes ([[https://tex.stackexchange.com/questions/17445/how-can-i-change-the-references-to-reference-in-the-thebibliography-environm|source]]). \renewcommand\bibname{References} % affichage de bibliographie ==== En-tête et pied de page personnalisés ==== * [[https://www.overleaf.com/learn/latex/Headers_and_footers]] \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \rhead{Version préliminaire} \cfoot{\thepage} === Ne pas mettre les titres en majuscules === Notamment //Contents// pour le sommaire ([[https://tex.stackexchange.com/questions/366049/heading-not-in-capital-letter|source]]) : \fancyhead[RE]{\slshape \nouppercase{\rightmark}} \fancyhead[LO]{\slshape \nouppercase{\leftmark}} ==== Changer les marges pour une portion du document ==== [[https://stackoverflow.com/questions/1670463/latex-change-margins-of-only-a-few-pages|Source]] \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 ==== Visualiser les marges du document ==== [[https://tex.stackexchange.com/questions/42329/displaying-page-construction-guides|Source]] \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} ==== Aller à une nouvelle page ==== \newpage \clearpage % fonctionne aussi dans le cas du double-colonne, s'il y a des flottants à positionnner ==== Garder deux éléments sur la même page ==== Pour par exemple empêcher que deux paragraphes se retrouvent sur deux pages distinctes ([[https://texfaq.org/FAQ-nopagebrk|source]]) : \needspace{4\baselineskip} % les 4 lignes suivantes seront toujours groupées sur une même page ==== Créer une commande personnalisée ==== \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 ==== Créer un environnement personnalisé ==== [[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} ==== Faire un CV ==== * [[https://blog.madrzejewski.com/creer-cv-elegant-latex-moderncv/]] * [[https://lataix-sebastien.developpez.com/tutoriels/latex/tutoriel-moderncv/]] * https://www.overleaf.com/latex/examples/curriculum-vitae-for-researchers/jmrscnymyfps * [[https://texblog.org/2012/04/25/writing-a-cv-in-latex/]] * https://mirror.ibcp.fr/pub/CTAN/macros/latex/contrib/moderncv/manual/moderncv_userguide.pdf Pour ''moderncv'', il faut installer le paquet ''texlive-fonts-extra'' pour avoir les icônes FontAwesome. ==== Corriger des documents avec Aspell ==== [[https://dbader.org/blog/spell-checking-latex-documents-with-aspell|Source]] find . -name "*.tex" -exec aspell --lang=fr --mode=tex check "{}" \; Autre correcteur : https://languagetool.org/fr/dev ==== Inclure un PDF ==== \usepackage{pdfpages} \includepdf[pages=-]{../poster/poster.pdf} % inclut toutes les pages du PDF ==== rubber ==== Outil pour facilement compiler tout un fichier LaTeX (aussi avec BibTeX !) en une commande. Installer le paquet ''rubber''. rubber --pdf file.tex ==== latexdiff === 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 ==== Compter le nombre de mots ==== Avec la commande ''texcount''. ==== Classe examen ==== * [[https://blog.dorian-depriester.fr/latex/rediger-des-sujets-dexamen-avec-latex|Rédiger des sujets d’examen avec LaTeX]] * [[https://www.overleaf.com/learn/latex/Typesetting_exams_in_LaTeX|Typesetting exams in LaTeX]] * https://math.mit.edu/~psh/exam/examdoc.pdf * [[http://agregationchimie.free.fr/exam.php|Créer un examen avec la classe exam]] * [[http://www.cuk.ch/articles/13645/|La classe exam, ou comment faire un sujet de contrôle scolaire avec LaTeX]] === Changer le début de numérotation des questions === [[https://tex.stackexchange.com/questions/560131/change-question-numbering-in-exam-document-class|Source]] \begin{questions} \setcounter{question}{n-1} \question Foo? \end{questions}