Open msavaryleblanc opened 3 years ago
Je parviens à reproduire le 1er problème, mais pas le second pour lequel il me faudrait un ECM.
Bonjour,
merci pour votre réponse ! J'ai préparé ça, j'ai gardé l'import de tous les packages au cas où ça bloque. Cet exemple reproduit les deux problèmes évoqués ci dessus.
% Document de classe yathesis
\documentclass[mainlanguage=english, version=final, colophon-location=nowhere, 10pt]{yathesis}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{kpfonts}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{pgfplots}
\usepackage{caption}
\usepackage{microtype}
\usepackage{varioref}
\usepackage[backend=biber,safeinputenc]{biblatex}
\usepackage{hyperref}
\usepackage{longtable}
\usepackage{graphicx}
\usepackage{colortbl}
\usepackage{subcaption}
\usepackage{amssymb}
\usepackage{relsize}
\usepackage{afterpage} % load the afterpage package
\usepackage{menukeys}
\usepackage{fancybox}
\usepackage{pdflscape}
\usepackage{lipsum}
\geometry{%
paper=a5paper
}
% Auteur de la thèse : prénom (1er argument obligatoire), nom (2e argument
% obligatoire) et éventuel courriel (argument optionnel). Les éventuels accents
% devront figurer et le nom /ne/ doit /pas/ être saisi en capitales
\author[qsdsqsqdsqd@sfsdfds.com]{Prénom}{NomDuThesard}
\expression{universitydepartment}{Unité de recherche}{Laboratory}
%
% Titre de la thèse dans la langue principale (argument obligatoire) et dans la
% langue secondaire (argument optionnel)
\title[Supporter les ingénieurs logiciels avec des assistants de modélisation]{Augmenting software engineers with modeling assistants}
\academicfield[Informatique]{Computer Science}
\date{01}{01}{2022}
\institute[logo=,url=]{}
\doctoralschool[url=]{}
\laboratory[
%logo=configuration/logoCRIStAL.png,
%logoheight=1.25cm,
url=https://www.cristal.univ-lille.fr/
]{CRIStAL UMR 9189}{%
Université de Lille\\
Campus scientifique \\
Bâtiment ESPRIT \\
Avenue Henri Poincaré \\
59655 Villeneuve d'Ascq \\
France}
\keywords{Qqdfqdsf, SQsfdfssdf, Fsdfdsgh, Ffdsfsdfds}{Qqdfqdsf, SQsfdfssdf, Fsdfdsgh, Ffdsfsdfds}
\begin{document}
\maketitle
\newgeometry{%
%showframe,
inner=1.7cm,
outer=1.7cm,
bottom=1.7cm,
top=1.7cm,
bindingoffset=0.4cm,
paper=a5paper
}
\begin{abstract}
\lipsum[3]
\end{abstract}
\begin{abstract}
\lipsum[3]
\end{abstract}
%
% Production de la page de résumés
\makeabstract
\tableofcontents[depth=chapter,name=Summary]
\mainmatter
\part{Une partie pour le contenu}
\backmatter
% Table des matières
\tableofcontents
\end{document}
Le second problème vient de l'option bottom=1.7cm
. Si elle est supprimée, le problème disparaît.
L'autre problème est moins évident : je vais regarder cela un peu, mais je ne garantis rien pour ce soir car j'ai d'autres choses urgentes pour demain matin.
Pour régler le problème de centrage, il devrait suffire de faire figurer en préambule le (long) code suivant :
\makeatletter
\renewcommand{\maketitle}[1][]{%
\booltrue{YAD@maketitle@used}%
\yadsetup{#1}%
\setlength{\fboxsep}{10pt}%
\setlength{\YAD@titleboxwidth}{\linewidth-2\fboxsep-2\fboxrule}%
\pagestyle{titles}%
\renewcommand*{\do}[1]{%
\cleardoublepage%
\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%
% \centering%
% \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 thèse non spécifié%
}{%
La commande \protect\title\space n'a pas été utilisée\MessageBreak%
(celle-ci est requise) ou son argument obligatoire est vide\MessageBreak%
(celui-ci doit être renseigné).%
}%
}%
}{%
\printtitle%
}%
\ifundef{\printsubtitle}{%
}{%
\ifdraft{}{%
\vskip0.5em%
% \vspace*{\stretch{.15}}%
}%
\par%
\centering%
\Large\printsubtitle%
}%
\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}{%
\newcommand\YAD@printedordernumber{%
\itshape%
\sffamily%
\YAD@translation{ordernumber}%
\IfLanguageName{french}{%
\FBcolonspace%
}{%
}: \printordernumber%
}
\ifdraft{}{\vspace*{\stretch{1}}}%
\ifboolexpr{%
bool {YAD@cover@page}%
or (bool {YAD@nofrontcover} and test {\IfLanguageName{\YAD@mainlanguage}})%
}{%
% \vspace*{\stretch{1}}%
\raggedleft{%
\YAD@printedordernumber%
}%
}{%
}%
\ifdraft{}{\vspace*{\stretch{.5}}}%
% \vspace*{\stretch{.5}}%
\par%
}{%
}%
\begin{center}
\ifbool{YAD@noinstitute}{%
}{%
\YAD@ifemptyorundef{\printinstitute}{%
\YAD@generic@argument@translate{institute}%
\YAD@ClassError[noinstitute]{%
Institut de la thèse non spécifié%
}{%
La commande \protect\institute\space n'a pas été
utilisée\MessageBreak%
(celle-ci est requise) ou son argument obligatoire est
vide\MessageBreak%
(celui-ci doit être renseigné).%
}%
}{%
\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}}%
}%
\ifboolexpr{%
bool {YAD@nodoctoralschool}%
or bool {YAD@hdr}%
}{%
}{%
\ifdraft{}{\vspace*{\stretch{1.5}}}%
% \vspace*{\stretch{1.5}}%
\par%
\YAD@translation{doctoralschool}
\YAD@ifemptyorundef{\printdoctoralschool}{%
\YAD@generic@argument@translate{doctoralschool}%
\YAD@ClassError[nodoctoralschool]{%
École doctorale de la thèse non spécifiée%
}{%
la commande \protect\doctoralschool\space n'a pas été
utilisée\MessageBreak%
(celle-ci est requise) ou son argument obligatoire est
vide\MessageBreak%
(celui-ci doit être renseigné).%
}%
}{%
\textbf{\printdoctoralschool}%
}%
}%
\ifbool{YAD@hdr}{%
\YAD@ifemptyorundef{\printdoctoralschool}{%
}{%
\YAD@ClassWarningNoLine{%
Une école doctorale a été spécifiée mais elle ne\MessageBreak%
figurera nulle part : les HDR ne sont pas préparées\MessageBreak%
sous l'égide d'écoles doctorales (cf. \MessageBreak%
https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000298904)%
}%
}%
}{%
}%
\ifbool{YAD@nolaboratory}{%
}{%
\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 thèse non spécifié%
}{%
La commande \protect\author\space n'a pas été utilisée (celle-ci
est requise)\MessageBreak%
ou ses 2 premiers arguments obligatoires sont vides\MessageBreak%
(ceux-ci doivent être renseignés).%
}%
}%
}{%
\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}%
% }%
}{%
\ifbool{YAD@nodate}{%
}{%
\ifdraft{}{\vspace*{\stretch{1}}}%
% \vspace*{\stretch{1}}%
\par%
\YAD@translation{defendedon}
\YAD@ifemptyorundef{\printdate}{%
\YAD@generic@argument@translate{date}%
}{%
\textbf{\printdate}%
}%
}%
}%
}%
\ifYAD@hdr%
\else%
\ifbool{YAD@noaim}{%
}{%
\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}}%
\ifbool{YAD@noacademicfield}{%
}{%
\par%
\large%
\YAD@translation{academicfield}
%
\YAD@ifemptyorundef{\printacademicfield}{%
\YAD@generic@argument@translate{academicfield}%
\ifbool{YAD@noacademicfield}{%
}{%
\YAD@ClassError[noacademicfield]{%
Champ disciplinaire de la thèse non spécifié%
}{%
La commande \protect\academicfield\space n'a pas été utilisée
(celle-ci est requise)\MessageBreak%
ou son argument obligatoire est vide (celui-ci doit être renseigné).%
}%
}%
}{%
\textbf{\printacademicfield}%
}%
\ifundef{\printspeciality}{%
}{%
\ifdraft{}{\vspace*{\stretch{.5}}}%
% \vspace*{\stretch{.5}}%
\par%
\large%
\YAD@translation{speciality} \textbf{\printspeciality}%
}%
}%
\end{center}
\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]{\textwidth}
\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 thèse non spécifié%
}{%
La commande \protect\supervisor\space n'a pas été utilisée\MessageBreak%
(celle-ci est requise) ou ses arguments obligatoires sont
vides\MessageBreak%
(ceux-ci doivent être renseignés).%
}%
}%
}%
\endgroup%
\ifthenelse{\equal{\YAD@colophon@location}{verso-frontcover}}{%
\YAD@insert@colophon%
}{%
}%
\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}%
\restoregeometry%
\pagestyle{preliminary}%
}%
\makeatother
Bonjour Denis,
merci beaucoup pour cette réponse très rapide !
Les deux patchs fonctionnent parfaitement ! Merci encore, ça m'évite de longs moments de "bricolage" sur le PDF.
En tout cas, voilà un retour d'expérience pour le A5 ! Tout le reste fonctionne parfaitement !
Si plus tard, vous corrigez le placement de l'adresse en gardant les marges de geometry, n'hésitez pas à me notifier ! Peut être que le manuscrit ne sera pas encore parti en impression :)
Bonne journée, Maxime
Bonjour,
j'apporte les derniers réglages à ma thèse pour son impression en format a5 avec geometry a5paper.
Je rencontre 2 problèmes qui semblent liée à l'adaptation de la classe yathesis en fonction de la geometry:
Y a-t-il un moyen (même de dépannage) pour corriger ces problèmes rapidement ? Je dois envoyer le document demain, et j'aimerai éviter de bricoler sur le PDF :)
Merci, Maxime