Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== 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]]) : <code latex> \usepackage{fourier} \warning </code> Symbole antislash : <code latex> \backslash \lstinline{\} </code> Intervalles d'entiers ([[https://tex.stackexchange.com/questions/304662/typesetting-an-integer-interval|source]]) : <code latex> \usepackage{stmaryrd} l'intervalle $\llbracket 0, 100 \rrbracket$ </code> ==== Ne pas afficher la date dans le titre ==== [[https://tex.stackexchange.com/questions/2760/omitting-the-date-when-using-maketitle|Source]] <code latex> \date{} </code> ==== Notes de bas de page ==== === Les placer en bas de la page === Utiliser le paquet ''footmisc'': <code latex> \usepackage[bottom]{footmisc} </code> === 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]]): <code latex> % Déclaration de la commande \freefootnote: \let\svthefootnote\thefootnote \newcommand\freefootnote[1]{% \let\thefootnote\relax% \footnotetext{#1}% \let\thefootnote\svthefootnote% } % Utilisation \freefootnote{Foo} </code> === Empêcher les notes de s'étendre sur plusieurs pages === [[https://texfaq.org/FAQ-splitfoot|Source]] <code latex> \interfootnotelinepenalty=10000 </code> ==== Texte en exposant ==== <code latex> May, 9\textsuperscript{th} 2020 </code> ==== 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]] <code latex> \usepackage{ulem} Du texte \sout{barré}. </code> Il faut utiliser <code latex> \usepackage[normalem]{ulem} </code> 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 === <code latex> \usepackage[most]{tcolorbox} \newenvironment{fondgris}{ \begin{tcolorbox}[colback=black!7!white,colframe=black!10!white]} {\end{tcolorbox}} % ... \begin{fondgris} machin \end{fondgris} </code> === Mettre un fond aux figures === <code latex> \usepackage{mdframed} \begin{figure} \begin{mdframed}[backgroundcolor=green!10,linecolor=white] \centering \includegraphics[width=\linewidth]{img.png} \caption{Légende} \end{mdframed} \end{figure} </code> ==== Définir l'espacement entre les paragraphes ==== <code latex> \setlength{\parskip}{0.2cm} % définit l'espacement entre chaque paragraphe </code> ==== 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]] <code latex> \newlength{\mylistspace} \setlength{\mylistspace}{1em} \begin{itemize} \setlength{\itemsep}{\mylistspace} \item A \item B \end{itemize} </code> [[https://tex.stackexchange.com/a/109608|Source]] <code latex> \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} </code> === 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 : <code latex> \setlist[description]{leftmargin=5mm} </code> === Changer l'aspect des puces === <code latex> \usepackage{enumitem} \setlist[itemize]{label=\textbullet} </code> === 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]] <code latex> \begin{enumerate} \setcounter{enumi}{4} % 4 pour démarrer la liste à 5 \item fifth element \end{enumerate} </code> === Répartir les éléments sur plusieurs colonnes === [[https://tex.stackexchange.com/questions/194426/split-itemize-into-multiple-columns|Source]] <code latex> \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} </code> ==== 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]] <code latex> \colorbox{green}{text avec du vert derrière} </code> === Changer la couleur d'une puce d'une liste === https://www.latex4technics.com/?note=y99 <code latex> \begin{itemize} \item Noir \item[\textcolor{blue}{\textbullet}] Bleu \item Noir \end{itemize} </code> === Définir des couleurs RGB === <code latex> \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 </code> Ces couleurs peuvent aussi être utilisées dans des figures Tikz. ==== Inclure une image ==== <code latex> \begin{figure}[h] \centering \includegraphics[scale=0.7]{img.pdf} \caption{Légende} \label{fig:label} \end{figure} </code> === Ajouter une bordure à l'image === [[https://tex.stackexchange.com/questions/20640/how-to-add-border-for-an-image|source]] <code latex> \fcolorbox{black}{white}{\includegraphics[scale=0.5]{block-calc.png}} </code> === Deux images côte à côte === [[https://tex.stackexchange.com/questions/5769/two-figures-side-by-side|Source]] <code latex> \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} </code> 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]] <code latex> \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} </code> 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]] <code latex> \includegraphics[trim={5cm 0 0 0},clip,width=\textwidth]{example-image-a} </code> La syntaxe est ''trim={<left> <lower> <right> <upper>}''. === 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 : <code latex> \caption[Dans la liste des figures]{Sous la figure} </code> === Positionner de façon absolue === [[https://tex.stackexchange.com/questions/386324/place-image-in-absolute-position-independently-from-text|Source]] <code latex> \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} </code> === Centrer la légende === [[https://tex.stackexchange.com/questions/95207/how-to-center-a-specific-caption|Source]] <code latex> \captionsetup{justification=centering} \caption{Order A\\\texttt{block:block}} </code> ==== Utiliser la police Times New Roman ==== [[https://tex.stackexchange.com/questions/153168/how-to-set-document-font-to-times-new-roman-by-command|Source]] <code latex> \usepackage{mathptmx} </code> ==== 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]] <code latex> \usepackage[hyphens]{url} </code> 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]] <code latex> Voici un \href{https://perdu.com}{site web} </code> Pour colorer ces liens : <code latex> \usepackage{hyperref} \hypersetup{ colorlinks=true, urlcolor=cyan, } </code> ==== Préciser comment couper les mots pour les retours à la ligne ==== [[https://en.wikibooks.org/wiki/LaTeX/Text_Formatting#Hyphenation|Source]] <code latex> \hyphenation{op-tical net-works semi-conduc-tor} % ou juste: op\-tical </code> 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]] <code latex> 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} </code> === Aux sections === [[https://www.overleaf.com/learn/latex/Cross_referencing_sections_and_equations#Referencing_sections_and_chapters|Source]] <code latex> \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 </code> === La page d'une référence === <code latex> La \figurename~\ref{fig:foo} est sur la page \pageref{fig:foo}. </code> ==== 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]] <code latex> \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} </code> 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]]) : <code latex> \begin{table} \caption{Table caption} \makebox[\linewidth]{ \begin{tabularx}{6in}{|X|X|X|X|}\hline % ... \end{tabularx} } \end{table} </code> === 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]]) : <code latex> \begin{table}[H] % ... \end{table} </code> L'utilisation de ''\clearpage'' peut aussi aider. === Forcer le retour à la ligne dans une cellule === <code latex> \usepackage{makecell} </code> <code latex> & \makecell{retour\\à\\ligne} & </code> 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]] <code latex> foo & bar \\[5mm] foz & baz </code> [[https://tex.stackexchange.com/questions/31672/column-and-row-padding-in-tables|Source]] <code latex> % inside a cell, with content "stuff", adds a space above: \rule{0pt}{2em}stuff </code> === Deux tableaux côte-à-côte === [[https://tex.stackexchange.com/questions/2832/how-can-i-have-two-tables-side-by-side|Source]] <code latex> \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} </code> === Changer la couleur de fond d'une cellule === [[https://tex.stackexchange.com/questions/50349/color-only-a-cell-of-a-table]] <code latex> \usepackage{colortbl} &\cellcolor{blue!25}0 & ... \\ </code> ==== Ajouter deux tirets à la suite ==== Sans qu'ils soient convertis en un long tiret: <code latex> {-}{-} </code> ==== 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]] <code latex> \texttt{int main()\\ \{\\ \phantom{x}\hspace{3ex}return 0;\\ \}\\} </code> ==== Enlever l'alinéa au début d'un paragraphe ==== [[https://www.mathematex.fr/viewtopic.php?t=13443|Source]] <code latex> {\noindent Ligne 1 } </code> ==== 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]]) : <code latex> \hspace*{\algorithmicindent} \textbf{Input} \\ \hspace*{\algorithmicindent} \textbf{Output} \begin{algorithmic}[1] </code> ==== Listings de code ==== <code latex> \usepackage{listings} </code> === Avoir des accents === [[https://tex.stackexchange.com/questions/24528/having-problems-with-listings-and-utf-8-can-it-be-fixed|Source]] <code latex> \lstset{ inputencoding=utf8, extendedchars=true, literate={á}{{\'a}}1 {ã}{{\~a}}1 {é}{{\'e}}1, } </code> Voir [[https://en.wikibooks.org/wiki/LaTeX/Source_Code_Listings#Encoding_issue]] === Changer de langage === Définir pour chaque langage: <code latex> \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}, } </code> Utiliser ensuite: <code latex> \begin{lstlisting}[style=ruby-style] config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" \end{lstlisting} </code> === Mettre en forme un diff === [[https://tex.stackexchange.com/questions/105995/is-there-a-ready-solution-to-typeset-a-diff-file|Source]] <code latex> \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} </code> === Faire des retours à la ligne === [[https://tex.stackexchange.com/questions/116534/lstlisting-line-wrapping/116572|Source]] <code latex> \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} </code> === Préciser à partir de quelle ligne inclure un fichier === <code latex> \lstinputlisting[firstline=3]{codes/difference_or.c} </code> === Surligner du code === [[https://stackoverflow.com/questions/1304315/highlighting-a-chunk-of-code-within-a-lstlisting|Source]] <code latex> \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} </code> === Ajouter des mots-clés au langage === [[https://tex.stackexchange.com/questions/28229/extend-a-language-with-additional-keywords|Source]] <code latex> \lstset{ % ... morekeywords={inline,restrict}, % ... } </code> ==== Aligner le texte à droite ==== Utiliser l'environnement ''flushright''. ==== Faux texte ==== * [[https://devmath.fr/informatique/lorem-ipsum-lipsum-latex/]] <code latex> \usepackage{lipsum} \lipsum </code> ==== Commentaires ==== <code latex> \if 0 commente un large bloc de texte \fi </code> ==== Programmation === === Définir des variables === <code latex> \def\plotScale{1} </code> 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]]) : <code latex> \def\middle#1#2{\fpeval{(#1+#2)/2}} </code> Puis : <code latex> \middle{1}{2} </code> Pour calculer un modulo ([[https://tex.stackexchange.com/questions/34424/how-do-i-calculate-n-modulo-3-in-latex|source]]) : <code tex> \newcommand{\modulo}[2]{% (trunc(#1-(#2*trunc(#1/#2,0)),0)) } \fpeval{\modulo[5}{3}} </code> === Conditions === [[https://tex.stackexchange.com/a/578797|Source]] <code latex> \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} </code> [[https://tex.stackexchange.com/questions/75485/how-to-create-a-conditional-which-checks-if-one-or-another-condition-is-true-in|Source]] <code latex> \ifnum0\newrank>3 foo \else bar \fi </code> Pour faire un switch : <code latex> \newcommand\commColor[1]{% \ifcase\fpeval{floor(#1/4)}% cyan% \or% magenta% \or% teal!60% \or% violet!60% \else% black% \fi% } </code> === 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]]): <code latex> \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); } </code> Également de générer des séquences: <code latex> \foreach \x in {0,1,...,9} { \node [anchor=north] at (\x/10,0) {0.\x}; } </code> ==== Numéros de page ==== === Cacher le numéro de page === Sur une page : <code latex> \thispagestyle{empty} </code> Sur toutes les pages : <code latex> \pagestyle{empty} </code> === Redéfinir le compteur de page === Utile pour changer le numéro de départ de la numérotation: <code latex> \setcounter{page}{2} </code> ==== Espaces verticaux ==== === Manuellement === Fixes : <code latex> \vspace{0.5cm} </code> Proportionnels : <code latex> \vspace*{\stretch{1}} % ou \vfill </code> === 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 : <code latex> % avant le \begin{document} \flushbottom </code> Pour, au contraire, ne pas ajouter d'espaces entre les paragraphes pour tenter d'égaliser : <code latex> % avant le \begin{document} \raggedbottom </code> ==== Tables des matières ==== === Créer une table des matières === <code latex> \usepackage[colorlinks,linkcolor=purple]{hyperref} % pour avoir des liens dans la table des matières \tableofcontents </code> === Ajouter un élément dans la table des matières === [[https://www.overleaf.com/learn/latex/Table_of_contents|Source]] <code latex> \addcontentsline{toc}{section}{Introduction} \section*{Introduction} </code> === Changer le titre de la table des matières === [[https://tex.stackexchange.com/questions/28516/how-to-change-the-title-of-toc|Source]] <code latex> \renewcommand{\contentsname}{Sommaire} </code> === Utiliser un titre différent dans la table des matières === <code latex> \chapter[Titre dans la table des matières]{Titre dans la page du chapitre} </code> ==== Glossaires ==== * [[https://www.xm1math.net/doculatex/glossaries.html]] * [[https://fr.overleaf.com/learn/latex/Glossaries]] <code latex> \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} </code> Exemple de règles Makefile pour compiler tout ça : <code make> main.glo: acronymes.tex pdflatex main.tex makeglossaries main main.pdf: *.tex *.bib main.glo rubber --unsafe --pdf main.tex </code> ==== 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: <code latex> \usepackage[nottoc, notlof, notlot]{tocbibind} </code> <code latex> \bibliographystyle{plain} \bibliography{bibliography} % fichier bibliography.bib </code> Compilation: <code bash> pdflatex fichier.tex bibtex fichier # fichier.aux pdflatex fichier.tex # 2 fois </code> === Imposer les majuscules === Mettre le texte entre accolades. === Citer une URL === <code latex> @misc{leLabel, author={l'auteur}, title={le titre du site}, year={2009}, howpublished="\url{http://leSite.com}" } </code> === 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: <code latex> \bibliographystyle{unsrt} </code> === 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]]). <code latex> \renewcommand\bibname{References} % affichage de bibliographie </code> ==== En-tête et pied de page personnalisés ==== * [[https://www.overleaf.com/learn/latex/Headers_and_footers]] <code latex> \usepackage{fancyhdr} \pagestyle{fancy} \fancyhf{} \rhead{Version préliminaire} \cfoot{\thepage} </code> === Ne pas mettre les titres en majuscules === Notamment //Contents// pour le sommaire ([[https://tex.stackexchange.com/questions/366049/heading-not-in-capital-letter|source]]) : <code latex> \fancyhead[RE]{\slshape \nouppercase{\rightmark}} \fancyhead[LO]{\slshape \nouppercase{\leftmark}} </code> ==== Changer les marges pour une portion du document ==== [[https://stackoverflow.com/questions/1670463/latex-change-margins-of-only-a-few-pages|Source]] <code latex> \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 </code> ==== Visualiser les marges du document ==== [[https://tex.stackexchange.com/questions/42329/displaying-page-construction-guides|Source]] <code latex> \usepackage[showframe]{geometry} </code> Pour ne pas avoir à modifier les options du paquet ''geometry'', il est aussi possible d'utiliser directement le paquet éponyme : <code latex> \usepackage{showframe} </code> ==== Aller à une nouvelle page ==== <code latex> \newpage \clearpage % fonctionne aussi dans le cas du double-colonne, s'il y a des flottants à positionnner </code> ==== 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]]) : <code latex> \needspace{4\baselineskip} % les 4 lignes suivantes seront toujours groupées sur une même page </code> ==== Créer une commande personnalisée ==== <code latex> \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 </code> ==== Créer un environnement personnalisé ==== [[https://www.overleaf.com/learn/latex/Environments]] <code latex> \newenvironment{bgfigure}[1]{\begin{figure}\begin{mdframed}[backgroundcolor=#1,linecolor=white]}{\end{mdframed}\end{figure}} % utilisation: \begin{bgfigure}{green!10} % contenu \end{bgfigure} </code> ==== 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]] <code bash> find . -name "*.tex" -exec aspell --lang=fr --mode=tex check "{}" \; </code> Autre correcteur : https://languagetool.org/fr/dev ==== Inclure un PDF ==== <code latex> \usepackage{pdfpages} \includepdf[pages=-]{../poster/poster.pdf} % inclut toutes les pages du PDF </code> ==== rubber ==== Outil pour facilement compiler tout un fichier LaTeX (aussi avec BibTeX !) en une commande. Installer le paquet ''rubber''. <code bash> rubber --pdf file.tex </code> ==== 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: <code bash> 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; </code> L'option ''PICTUREENV'' permet de ne pas chercher les différences dans les environnements TikZ. Avec un gestionnaire de version: <code bash> latexdiff-vc -r 1c70fb4 rr.tex </code> ==== 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]] <code latex> \begin{questions} \setcounter{question}{n-1} \question Foo? \end{questions} </code> latex/accueil.txt Dernière modification : 2025/11/19 14:24de phsw