J'aimerais mettre le nom de mon laboratoire en acronyme sur les pages de titre dans ma thèse avec yathesis, de manière à ce qu'il soit complet la première fois qu'il apparaît (en haut de la page de titre), puis en version courte au niveau de la phrase « En vue de l'obtention du grade de docteur de ... ».

Lorsque j'utilise la commande \gls{inst} (voir ECM ci-après), ça fonctionne pour la première de couverture, mais dans la page de titre qui est répétée à l'intérieur du document, le nom du labo ne figure qu'en version courte.

Or j'aimerais que ce soit comme sur la première de couverture.

Ouvrir dans l'éditeur
\documentclass{yathesis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[xindy]{glossaries}
%
\makeglossaries
%
\newacronym{inst}{INST}{Institut avec un long nom}
%
\institute[logo=example-image-a]{\gls{inst}}
\laboratory{Labo}{Adresse du laboratoire}
%
\begin{document}
\title[Title]{Titre}
\maketitle
\end{document}

Posée 10 Mai '16, 23:21

LaetitiaB's gravatar image

LaetitiaB
2112
Taux d'acceptation : 0%

Modifiée 03 Nov '16, 00:41

Pathe's gravatar image

Pathe ♦♦
7.4k28196245


En créant deux nouvelles commandes correspondant respectivement à la version courte et à la version longue de l'institut (\newcommand{\shortinstitute}{\acrshort{inst}} et \newcommand{\longinstitute}{\acrlong{inst}}), il suffit de les appeler au bon endroit dans la création de la page de titre.

Remarque : je n'ai pas fait les modifications nécessaires en cas de co-institut.

Ouvrir dans l'éditeur
\documentclass{yathesis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[xindy]{glossaries}
%
\makeglossaries
%
\makeatletter
\renewcommand{\maketitle}[1][]{%
  \booltrue{YAD@maketitle@used}%
  \yadsetup{#1}
  \setlength{\fboxsep}{10pt}%
  \setlength{\YAD@titleboxwidth}{\linewidth-2\fboxsep-2\fboxrule}%
  \renewcommand*{\do}[1]{%
  \pagestyle{titles}%
\begingroup%
\expandafter\selectlanguage\expandafter{##1}%
  \begin{lrbox}{\YAD@titlebox}
    \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
    }{%
      \tcbset{colback=white,boxsep=3pt,boxrule=0.4pt,arc=0mm}%
      \ifthenelse{\equal{\cmdKV@YAD@frametitle}{shadowbox}}{%
        \tcbset{enhanced,drop shadow southeast={black,opacity=1}}%
      }{%
        \ifthenelse{\equal{\cmdKV@YAD@frametitle}{ovalbox}}{%
          \tcbset{arc=3mm}%
        }{%
          \ifthenelse{\equal{\cmdKV@YAD@frametitle}{fbox}}{%
          }{%
            \tcbset{code={\expandafter\pgfkeysalsofrom{\cmdKV@YAD@frametitle}}}%
          }%
        }%
      }%
      \begin{tcolorbox}
    }%
    \noindent%
    \begin{minipage}{\linewidth-2\fboxsep-2\fboxrule}
      \onehalfspacing%
      \noindent%
      \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
      }{%
        \ifYAD@hdr
        \YAD@translation{thesistitle-hdr}%
        \else%
        \YAD@translation{thesistitle}%
        \fi
      }%
      \par%
      \centering%
      \Huge\bfseries%
      \YAD@ifemptyorundef{\printtitle}{%
        \YAD@generic@argument@translate{title}%
        \ifbool{YAD@notitle}{%
        }{%
          \YAD@ClassError[notitle]{%
            Titre de la these non specifie%
          }{%
            La commande \protect\title\space n'a pas ete utilisee\MessageBreak%
            (celle-ci est requise) ou son argument obligatoire est vide\MessageBreak%
            (celui-ci doit etre renseigne).%
          }%
        }%
      }{%
        \printtitle%
      }%
      \ifundef{\printsubtitle}{%
      }{%
        \ifdraft{}{\vspace*{\stretch{.15}}}%
        % \vspace*{\stretch{.15}}%
        \par%
        \centering%
        \Large\printsubtitle%
      }%
    \end{minipage}%
    \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
    }{%
    \end{tcolorbox}
  }%
  \end{lrbox}
  \settototalheight{\YAD@titleboxheight}{\YAD@titlebox}%
  \setlength{\YAD@otherboxheight}{0.3\paperheight-\YAD@titleboxheight}%
  %\YAD@astuce@expressioncle%
  \noindent%
  \ifcsdef{printordernumber}{%
  \ifboolexpr{%
    bool {YAD@cover@page}%
    or (bool {YAD@nofrontcover} and test {\IfLanguageName{\YAD@mainlanguage}})%
  }{%
    \ifdraft{}{\vspace*{\stretch{1}}}%
    % \vspace*{\stretch{1}}%
    \raggedleft{%
      \itshape%
      \sffamily%
      \YAD@translation{ordernumber}%
      \IfLanguageName{french}{%
        \FBcolonspace%
      }{%
      }: \printordernumber%
    }%
  }{%
  }%
  \ifdraft{}{\vspace*{\stretch{.5}}}%
  % \vspace*{\stretch{.5}}%
  \par%
}{%
}%
    % \begin{minipage}[c][\YAD@otherboxheight][c]{\YAD@titleboxwidth}
    %   \ifdraft{}{\vspace*{\stretch{.25}}}%
    \begin{center}
      \YAD@ifemptyorundef{\printinstitute}{%
        \YAD@generic@argument@translate{institute}%
        \ifbool{YAD@noinstitute}{%
        }{%
          \YAD@ClassError[noinstitute]{%
            Institut de la these non specifie%
          }{%
            La commande \protect\institute\space n'a pas ete
            utilisee\MessageBreak%
            (celle-ci est requise) ou son argument obligatoire est
            vide\MessageBreak%
            (celui-ci doit etre renseigne).%
          }%
        }%
      }{%
        \YAD@translation{institute} \textbf{\textsc{\Large\longinstitute}}%
      }%
      \ifundef{\printcoinstitute}{%
      }{%
        \ifdraft{}{\vspace*{\stretch{.5}}}%
        % \vspace*{\stretch{.5}}%
        \par%
        \YAD@translation{coinstitute} \textbf{\textsc{\Large\printcoinstitute}}%
      }%
      \ifundef{\printcompany}{%
      }{%
        \ifdraft{}{\vspace*{\stretch{.5}}}%
        % \vspace*{\stretch{.5}}%
        \par%
        \YAD@translation{company} \textbf{\textsc{\Large\printcompany}}%
      }%
      \ifdraft{}{\vspace*{\stretch{1.5}}}%
      % \vspace*{\stretch{1.5}}%
      \par%
      \YAD@translation{doctoralschool}
      \YAD@ifemptyorundef{\printdoctoralschool}{%
        \YAD@generic@argument@translate{doctoralschool}%
        \ifbool{YAD@nodoctoralschool}{%
        }{%
          \YAD@ClassError[nodoctoralschool]{%
            Ecole doctorale de la these non specifiee%
          }{%
            la commande \protect\doctoralschool\space n'a pas ete
            utilisee\MessageBreak%
            (celle-ci est requise) ou son argument obligatoire est
            vide\MessageBreak%
            (celui-ci doit etre renseigne).%
          }%
        }%
      }{%
        \textbf{\printdoctoralschool}%
      }%
      \ifdraft{}{\vspace*{\stretch{.5}}}%
      % \vspace*{\stretch{.5}}%
      \par%
      \YAD@translation{universitydepartment}
      \ifdefstring{\YAD@main@laboratory@nonamelink}{true}{%
        \textbf{\printlaboratory{\YAD@main@laboratory@name}}%
      }{%
        \textbf{\printlaboratory[\YAD@main@laboratory@url]{\YAD@main@laboratory@name}}%
      }%
      \ifdraft{}{\vspace*{\stretch{1.5}}}%
      % \vspace*{\stretch{1.5}}%
      \par%
      {\large%
        \ifYAD@hdr%
        \YAD@translation{thesisdefendedby-hdr} %
        \else%
        \YAD@translation{thesisdefendedby} %
        \fi%
        \YAD@ifemptyorundef{\printauthor}{%
          \YAD@generic@argument@translate{author}%
          \ifbool{YAD@noauthor}{%
          }{%
            \YAD@ClassError[noauthor]{%
              Auteur de la these non specifie%
            }{%
              La commande \protect\author\space n'a pas ete utilisee (celle-ci
              est requise)\MessageBreak%
              ou ses 2 premiers arguments obligatoires sont vides\MessageBreak%
              (ceux-ci doivent etre renseignes).%
            }%
          }%
        }{%
          \textbf{\printauthor}%
        }%
      \ifboolexpr{%
          bool {YAD@submitted@work}%
          or bool {YAD@submitted@work@star}%
        }{%
          % \ifdraft{}{\vspace*{\stretch{1}}}%
          % \par%
          % \YAD@translation{estimateddefensedate}
          % \YAD@ifemptyorundef{\printdate}{%
          %   \YAD@generic@argument@translate{date}%
          % }{%
          %   \textbf{\printdate}%
          % }%
        }{%
          \ifdraft{}{\vspace*{\stretch{1}}}%
          % \vspace*{\stretch{1}}%
          \par%
          \YAD@translation{defendedon}
          \YAD@ifemptyorundef{\printdate}{%
            \YAD@generic@argument@translate{date}%
          }{%
            \textbf{\printdate}%
          }%
        }%
      }%
      \ifYAD@hdr%
      \else%
      \ifdraft{}{\vspace*{\stretch{1}}}%
      % \vspace*{\stretch{1}}%
      \par%
      \YAD@translation{aim}%
      \ifundef{\printinstitute}{%
        \YAD@generic@argument@translate{institute}%
      }{%
%        \printinstitute*%
        \shortinstitute
      }%
      \ifundef{\printcoinstitute}{%
      }{%
        \YAD@translation{aimand}%
        \printcoinstitute*%
      }%
      \fi%
      \ifdraft{}{\vspace*{\stretch{1}}}%
      % \vspace*{\stretch{1}}%
      \par%
      \large%
      \YAD@translation{academicfield}
      %
      \YAD@ifemptyorundef{\printacademicfield}{%
        \YAD@generic@argument@translate{academicfield}%
        \ifbool{YAD@noacademicfield}{%
        }{%
          \YAD@ClassError[noacademicfield]{%
            Champ disciplinaire de la these non specifie%
          }{%
            La commande \protect\academicfield\space n'a pas ete utilisee
            (celle-ci est requise)\MessageBreak%
            ou son argument obligatoire est vide (celui-ci doit etre renseigne).%
          }%
        }%
      }{%
        \textbf{\printacademicfield}%
      }%
      \ifundef{\printspeciality}{%
      }{%
        \ifdraft{}{\vspace*{\stretch{.5}}}%
        % \vspace*{\stretch{.5}}%
        \par%
        \large%
        \YAD@translation{speciality} \textbf{\printspeciality}%
      }
    \end{center}
  % \end{minipage}%
  \vspace*{\stretch{1}}%
  \begin{center}
    \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
    }{%
      \ifdraft{}{\vspace*{\stretch{2}}}%
      % \vspace*{\stretch{2}}%
    }{%
      \ifdraft{}{\vspace*{\stretch{.25}}}%
      % \vspace*{\stretch{.25}}%
    }%
    \usebox{\YAD@titlebox}%
    % \ifdraft{}{\vspace*{\stretch{2}}}%
    \vspace*{\stretch{2}}%
  \end{center}
  \noindent%
  \begin{minipage}[c][\YAD@otherboxheight][c]{\YAD@titleboxwidth}
    \YAD@supervisors@tabular%
    \par%
    \ifboolexpr{%
      bool {YAD@submitted@work}%
      or bool {YAD@submitted@work@star}%
    }{%
      \vphantom{\YAD@committee@tabular}%
    }{%
      \YAD@committee@tabular%
    }%
    \ifdraft{}{\vspace*{\stretch{.1}}}%
    % \vspace*{\stretch{.1}}%
  \end{minipage}
  \ifthenelse{\equal{\cmdKV@YAD@frametitle}{none}}{%
  }{%
    % \ifdraft{}{\vspace*{\stretch{2}}}%
    \vspace*{\stretch{2}}%
  }{%
  }%
  \ifbool{YAD@supervisor@specified}{%
  }{%
    \ifbool{YAD@nosupervisor}{%
    }{%
      \YAD@ClassError*[nosupervisor]{%
        Directeur de these non specifie%
      }{%
        La commande \protect\supervisor\space n'a pas ete utilisee\MessageBreak%
        (celle-ci est requise) ou ses arguments obligatoires sont
        vides\MessageBreak%
        (ceux-ci doivent etre renseignes).%
      }%
    }%
  }%
\endgroup%
\boolfalse{YAD@cover@page}%
}%
\expandafter\docsvlist{\YAD@mainlanguage}%
\ifbool{YAD@two@titles}{%
  \booltrue{YAD@second@title}%
  \ifthenelse{\equal{\YAD@mainlanguage}{french}}{%
    \ifbool{YAD@nofrontcover}{%
      \docsvlist{english}%
    }{%
      \docsvlist{french,english}%
    }%
  }{%
    \ifbool{YAD@nofrontcover}{%
      \docsvlist{french}%
    }{%
      \docsvlist{english,french}%
    }%
  }%
}{%
}%
\ifthenelse{\equal{\cmdKV@YAD@frametitle}{shadowbox}}{%
  \let\tcb@shadow@prepare=\origtcb@shadow@prepare%
}{%
}%
\expandafter\selectlanguage\expandafter{\YAD@mainlanguage}%
\pagestyle{preliminary}%
}%
\AtEndDocument{%
  \ifboolexpr{%
    bool {YAD@maketitle@used}%
    or bool {YAD@nomaketitle}%
  }{%
  }{%
    \YAD@ClassError*[nomaketitle]{%
      Commande \protect\maketitle\space non utilisee%
    }{%
      La commande \protect\maketitle\space n'a pas ete utilisee. Celle-ci est
      requise.%
    }%
  }%
}%
\makeatother

\newacronym{inst}{INST}{Institut avec un long nom}
%
\institute[logo=example-image-a]{\gls{inst}}
\newcommand{\shortinstitute}{\acrshort{inst}}
\newcommand{\longinstitute}{\acrlong{inst}}
\laboratory{Labo}{Adresse du laboratoire}
%
\begin{document}
\title[Title]{Titre}
\maketitle
\end{document}

EDIT — plutôt que de redéfinir complètement la commande \maketitle, @touhami propose de chercher et remplacer les parties qui nous intéressent ici en utilisant la commande \xpatchcmd du package xpatch chargé automatiquement par yathesis :

Ouvrir dans l'éditeur
\xpatchcmd\maketitle{\Large\printinstitute}{\Large\longinstitute}{}{\errmessage{some thing bad happen}}
\xpatchcmd\maketitle{\printinstitute*}{\shortinstitute}{}{\errmessage{some thing bad happen}}

Un MWE donnerait :

Ouvrir dans l'éditeur
\documentclass{yathesis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[xindy]{glossaries}
%
\makeglossaries
%
\xpatchcmd\maketitle{\Large\printinstitute}{\Large\longinstitute}{}{\errmessage{some thing bad happen}}
\xpatchcmd\maketitle{\printinstitute*}{\shortinstitute}{}{\errmessage{some thing bad happen}}
%
\newacronym{inst}{INST}{Institut avec un long nom}
%
\institute[logo=example-image-a]{\gls{inst}}
\newcommand{\shortinstitute}{\acrshort{inst}}
\newcommand{\longinstitute}{\acrlong{inst}}
\laboratory{Labo}{Adresse du laboratoire}
%
\begin{document}
\title[Title]{Titre}
\maketitle
\end{document}

Aussi, si pour le nom long de l'institut on veut y ajouter son abréviation entre parenthèses, il suffit de remplacer \newcommand{\longinstitute}{\acrlong{inst}} par \newcommand{\longinstitute}{\acrfull{inst}}.

Un grand merci à @touhami pour la contribution dans son commentaire que j'ai ajouté à cette réponse pour une meilleure lisibilité.

Lien permanent

Publiée 11 Mai '16, 10:10

jerome%20dequeker's gravatar image

jerome dequeker
836714
Taux d'acceptation : 65%

Modifiée 03 Nov '16, 00:46

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

2

On peut bénéficier de l'extension xpatch déja charger par la class yathesis \xpatchcmd\maketitle{\Large\printinstitute}{\Large\longinstitute}{}{\errmessage{some thing bad happen}} \xpatchcmd\maketitle{\printinstitute*}{\shortinstitute}{}{\errmessage{some thing bad happen}}

De plus (je ne suis pas sur de ce que l'OP cherche) on peut utiliser la commande \acrfull pour \newcommand{\longinstitute}{\acrfull{inst}}

(12 Mai '16, 22:24) touhami touhami's gravatar image

C'est vrai que plutôt que de redéfinir complètement la commande, on peut, pour améliorer la lisibilité du tex chercher et remplacer une partie du code. Très bonne suggestion que je vais ajouter à ma réponse. Merci.

Quant à l'utilisation d'\acrfull plutôt que \acrlong, tout dépend de la volonté de l'utilisateur.

(13 Mai '16, 10:07) jerome dequeker jerome%20dequeker's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.