J'utilise la classe yathesis. J'aimerais déplacer l’école doctorale en dessous de l'unité de recherche et les mettre tous les deux en fin de page de titre.

Posée 07 Fév '16, 16:52

rdk77's gravatar image

rdk77
25933337
Taux d'acceptation : 100%

Modifiée 08 Fév '16, 20:28

Pathe's gravatar image

Pathe ♦♦
7.5k42204251


Il est difficile d'anticiper tous les desiderata des doctorants (ou de leurs directeurs de thèse ou de laboratoire :) en terme de présentation de la page de titre. Donc il n'y a (pour l'instant) pas d'interface utilisateur pour procéder à ce qui est demandé ici.

En revanche, il est toujours possible de redéfinir en préambule la commande \maketitle responsable de la présentation de la page de titre et de la modifier à sa guise. Comme le code correspondant comporte des commandes « privées » (dont le nom contient « @ » de façon à éviter qu'elles ne soient redéfinies par erreur par l'utilisateur), il convient de le faire figurer entre commandes \makeatletter et \makeatother.

Voici un ECM qui répond à la question :

Ouvrir dans l'éditeur
\documentclass{yathesis}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\makeatletter
\renewcommand{\maketitle}[1][]{%
  \booltrue{YAD@maketitle@used}%
  \yadsetup{#1}
  \setlength{\fboxsep}{10pt}%
  \setlength{\YAD@titleboxwidth}{\linewidth-2\fboxsep-2\fboxrule}%
  \renewcommand*{\do}[1]{%
%    \end{macrocode}
% Appel du style de page propre au(x) titre(s)
%    \begin{macrocode}
  \pagestyle{titles}%
%    \end{macrocode}
% On passe dans la langue choisie en option (en français si rien n'est
% spécifié).
%    \begin{macrocode}
\begingroup%
\expandafter\selectlanguage\expandafter{##1}%
% \YAD@ifemptyorundef{\YAD@frametitle@set}{%
%   \gdef\YAD@frametitle{\cmdKV@YAD@frametitle}%
% }{%
%   \gdef\YAD@frametitle{\YAD@frametitle@set}%
% }%
  \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}%
%    \end{macrocode}
% On met en page les divers éléments des titres.
%    \begin{macrocode}
  %\YAD@astuce@expressioncle%
  \noindent%
  \ifcsdef{printordernumber}{%
%    \end{macrocode}
% On n'affiche le numéro d'ordre de la thèse que sur la 1\iere{} page du
% document : 1\iere{} de couverture s'il y a, page de titre en langue
% principale sinon.
%    \begin{macrocode}
  \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\printinstitute}}%
      }%
      \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}}%
      \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*%
      }%
      \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}
%    \end{macrocode}
% Affichage des directeurs de thèse et du jury
%    \begin{macrocode}
  \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).%
      }%
    }%
  }%
      \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}}%
      }%
%    \end{macrocode}
% On repasse à la langue par défaut
%    \begin{macrocode}
\endgroup%
%    \end{macrocode}
% Maintenant que la 1\iere{} page de titre (celle de 1\iere{} de couverture)
% a été créée, le booléen ×YAD@cover@page× est faux.
%    \begin{macrocode}
\boolfalse{YAD@cover@page}%
%    \end{macrocode}
% On génère une page de titre dans la langue principale puis dans la
% langue secondaire.
%    \begin{macrocode}
}%
\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}%
}%
\makeatother
\begin{document}
\author{John}{Doe}
\supervisor{Jane}{Doe}
\maketitle
\end{document}
Lien permanent

Publiée 07 Fév '16, 17:10

denis's gravatar image

denis ♦♦
7.3k1510
Taux d'acceptation : 53%

Modifiée 07 Fév '16, 17:26

Oui ça marche.

Mais j'ai essayé de centrer le nom du laboratoire et de l'école doctorale avec \centering mais ça ne centre que la première ligne.

De plus avec cet ECM : \pres[logo=./images/lml-logo,url=http://lml.univ-lille1.fr/lml/]{PRES Universi\'e Lille Nord-de-France} ne donne rien.

(07 Fév '16, 18:23) rdk77 rdk77's gravatar image

@rdk77 Plutôt que poser une question en commentaire, il est préférable de créer une nouvelle question à part entière (éventuellement en y indiquant le lien avec la question actuelle).

(07 Fév '16, 18:30) denis ♦♦ denis's gravatar image

@rdk77 Il faut ne publier de commentaires que s'ils enrichissent la base de connaissances (La)TeX et, en particulier, éviter ceux qui ne contiennent qu'une confirmation de solution ou que des remerciements. Le vôtre va donc être supprimé.

(07 Fév '16, 18:30) denis ♦♦ denis'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.