philologue.sty 16.6 KB
Newer Older
1
\ProvidesPackage{philologue}[2016/06/07 v1.33.4]
Maïeul Rouquette's avatar
Maïeul Rouquette committed
2

3 4 5 6
% Options

\RequirePackage{kvoptions}
\DeclareBoolOption[false]{english}
7
\DeclareBoolOption[false]{noindex}
8
\DeclareBoolOption[false]{word}
9
\DeclareStringOption[contenu/]{contenu}
10
\DeclareStringOption[]{series}
11 12
\ProcessKeyvalOptions*
% Outils divers à charger, dépendant de la langue
13
\RequirePackage{fontspec,xunicode,polyglossia}
14 15 16 17 18 19 20
\ifphilologue@english
	\setmainlanguage{english}
	\RequirePackage{bibleref}
	\biblerefstyle{jerusalem}
\else
	\setmainlanguage{french}
	\RequirePackage{bibleref-french}
21 22
	\biblerefstyle{defaultshorter}
	\renewcommand*{\BRvsep}{.}%Séparateur entre plusieurs versets consécutifs. À distinguer du séparateur entre plusieurs chapitres (;)
23
\fi
24
\RequirePackage{cesures-philologie}
25
% Outils divers à charger, indépendant de la langue
26
\XeTeXinputnormalization 1
27
\RequirePackage{etoolbox}
28
\RequirePackage{suffix}
29
\RequirePackage{xstring}
30
\RequirePackage{xargs}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
31
\RequirePackage{xspace}
32
\ifphilologue@noindex\else\RequirePackage{imakeidx}\fi
Maïeul Rouquette's avatar
Maïeul Rouquette committed
33
\RequirePackage{siunitx}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
34
\RequirePackage{longtable,array}
35
\RequirePackage[justification=centering]{caption}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
36
\RequirePackage{arydshln}
37
\RequirePackage{setspace}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
38
\RequirePackage{microtype}
39
\RequirePackage{color,soul}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
40
\RequirePackage{placeins}
41
\RequirePackage{float}
42
%
43
\RequirePackage{subfig}
44 45
\RequirePackage{tablefootnote}
\RequirePackage{pdflscape}
46
\RequirePackage{afterpage}
47
\RequirePackage{remreset}
48

49 50 51

% Typo générale

52 53
\ifphilologue@word
	\setmainfont[Mapping=tex-text,Ligatures=Common]{Times New Roman}
54
	\usepackage[none]{hyphenat}
55
	\newcommand\texorpdfstring[2]{#1}
56
	\sloppy
57
	\else
58
	\RequirePackage{hyperref}
59
	\setmainfont[Ligatures=TeX]{Linux Libertine O}
60
	\setmonofont{UMTypewriter}
61
\fi
62
\onehalfspacing
63 64 65

% geometry
\RequirePackage[a4paper]{geometry}
66 67 68 69 70 71 72 73 74 75
% Page vide à gauche des chapitres
% explication sur http://geekographie.maieul.net/145
\preto{\chapter}{%
  \let\oldclearpage\clearpage%
  \def\clearpage{\oldclearpage\thispagestyle{empty}}%
}%

\patchcmd{\chapter}{\fi}%
  {\fi%
  \let\clearpage\oldclearpage}{}{}%
76 77
% Les choses à reprendre
\newcommand{\areprendre}[1]{\PackageWarning{A reprendre}{#1}\hl{#1}}
78 79 80 81 82 83 84 85 86

% Réglage pour les listes, avec le package enumitem
\usepackage{enumitem}
\setitemize[1]{label=--}
\setenumerate{itemsep=0pt}
\setitemize{itemsep=0pt}
\setdescription{itemsep=0pt}


87

88
% Commande pour afficher les siècles
89
\DeclareRobustCommand{\cRM}[1]{\expandafter\uppercase\expandafter{\romannumeral #1}}		% Capital
90
\DeclareRobustCommand{\cRm}[1]{\textsc{\romannumeral #1}}	% Petit majuscule
91
\DeclareRobustCommand{\crm}[1]{\romannumeral #1}%
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
\newif\ifsiecleabr@
\def\switchsiecleabr{%
 \ifsiecleabr@%
   \siecleabr@false%
 \else%
   \siecleabr@true%
 \fi%
}
\def\sieclemot{%
  \ifsiecleabr@%
     s.%
  \else%
    siècle%
  \fi%
}
\def\sieclesmot{%
  \ifsiecleabr@%
     s.%
  \else%
    siècles%
  \fi%
}
114
\newcommand{\siecle}[1]{%
115
  \ifnum #1>0%
116
    \cRm{#1}\textsuperscript{e}~\sieclemot%
117 118
  \else%
    \numdef{\@tmp}{-#1}%
119
    \cRm{\@tmp}\textsuperscript{e}~\sieclemot\ avant notre ère%
120 121
  \fi%
}%
122
\newcommand{\siecles}[2]{%
123
  \cRm{#1}\textsuperscript{e}-\cRm{#2}\textsuperscript{e}%
124
  ~\sieclesmot%
125
}%
126
\newcommand{\sieclessg}[2]{%
127
  \cRm{#1}\textsuperscript{e}-\cRm{#2}\textsuperscript{e}%
128
  ~\sieclemot%
129
}%
130
\newcommand{\siecleset}[2]{%
131
  \cRm{#1}\textsuperscript{e} et \cRm{#2}\textsuperscript{e}%
132
  ~\sieclesmot%
133
}%
134

135
\newcommand{\sieclesou}[2]{%
136
  \cRm{#1}\textsuperscript{e} ou \cRm{#2}\textsuperscript{e}%
137
  ~\sieclemot%
138
}%
139

140 141

% csquotes
142
\RequirePackage[maxlevel=3]{csquotes}
143

144 145
\def\gouvrant{\csq@thequote@oopen}% A  n'utiliser que de manière exceptionnel, pour ouvrir des guillemets dans une cellule d'un tableau synoptique et les fermers ailleurs
\def\gfermant{\csq@thequote@oclose}%
146

147 148 149 150


% Pour les références bibliques 

151
\renewcommand*{\BRvrsep}{-\nobreak}%
152 153

\DeclareListParser*{\trouvepassages}{+}% Le + est un séparateur
Maïeul Rouquette's avatar
Maïeul Rouquette committed
154
\newrobustcmd{\bibleref}[1]{%
155 156 157 158
      %Commande pour afficher un passage biblique, c'est elle qui est appellée par tt les autres
      \def\passage##1|##2|##3|{%
	\ifstrempty{##2}%Si on désigne le livre en entier
	  {\bibleverse{##1}}%
159 160
	  {\IfSubStr{##2}{(}%
	    {\bibleverse{##1}##2\ifstrempty{##3}{}{ (##3)}}%
161 162 163 164
	    {\ifstrempty{##2}%
	      {\bibleverse{##1}}%
	      {\bibleverse{##1}(##2)}%
	     \ifstrempty{##3}{}{ (##3)}}%
165
	  }%
166 167 168 169 170
	}% L'affichage de chaque passage : 1) livre 2) passage 3) version
      % On commence par faire une liste des passages
      \def\passages{}% Liste des passages
      \numdef\nbpassages{0}% Nbr total de passages
      \trouvepassages{\numdef\nbpassages{\nbpassages+1}\listadd\passages}{#1}% On remplit la liste des passage
171 172 173 174 175 176 177
	%
	% On la parcourt ensuite
	\numdef\cptpassage{0}% Le nombre de passage courant
	\renewcommand{\do}[1]{% Ce qu'on effectue à chaque boucle
		\numdef\cptpassage{\cptpassage+1}% Incrémenter le compteur du passage courant
		\IfSubStr[2]{##1}{|}% Tester si on a 2 ou 3 élèments dans le passage
			{\passage##1|} % Si 3 élèments, donc 2 |
178 179 180 181 182
			{%
			  \IfSubStr[1]{##1}{|}%
			    {\passage##1||}% Si 2 élèments, donc 1 |
			    {\passage##1|||}% Si 1 élèments, donc 0 |
			}%
183
		\ifnumequal{\nbpassages}{\cptpassage}{}{ ; }% y a t'il encore des passages ensuite?
184 185 186 187 188
	}%
	\dolistloop{\passages}% Boucler sur tt les passages
	%
}

189
\newrobustcmd*{\biblefr}[1]{\emph{#1}} % pour un fragment de bible seulement
Maïeul Rouquette's avatar
Maïeul Rouquette committed
190
\newrobustcmd*{\biblecite}[1]{\footnote{\bibleref{#1}.}}%Pour une référence biblique en note sans cf 
191
\DeclareRobustCommandx*{\bible}[3][3]{%
192 193
	%#1 : passage
	%#2 : texte
194
	%#3 : signe de ponctuation après la ref
195
	\emph{#2}\footnote{\bibleref{#1}.}%
196
	#3%
197
}
198
\newrobustcmd*{\bibleall}[1]{%
199
	%#1 : passage
200
	\footnote{\Cf~\bibleref{#1}.}%
201
      }
202

203
\newcommand{\verset}[1]{\leavevmode\textsuperscript{#1}\ignorespaces}
204
% pour les notes de traductions
205
\newcommandx{\ctrad}[3][2,usedefault]{\edtext{#1}{#2\Bfootnote{#3}}}% Argument 2 optionel, type \applabel
206
\newcommand{\lit}[1]{\emph{lit.} : #1}
207
\newcommand{\altertrad}[1]{\emph{autre trad.} : #1}
208

209 210 211
% pour d'autre type de références
\newcommand{\incipit}[1]{\enquote{#1\ldots}}
\newcommand{\formerequetebdd}[1]{\texttt{#1}}
212
\let\requetebdd\formerequetebdd
213 214 215
% pour les index
\newif\ifvoirindex

216 217 218 219 220 221
% Déclaration des fichiers d'index
\ifphilologue@noindex\else
	\makeindex[name=np,title={Noms de personnes}]
	\makeindex[name=nl,title={Noms de lieux}]
	\makeindex[name=npe,title={Noms de peuples}]
\fi
222
%% nom de personnes
223

224 225 226 227 228 229
\newcommandx{\np}[3][1,2,usedefault]{%
	#3\indexn[#1][#2]{#3}{np}%
}
\newcommandx{\indexnp}[3][1,2,usedefault]{\indexn[#1][#2]{#3}{np}}

% nom de lieu
230

231 232 233 234 235 236
\newcommandx{\nl}[3][1,2,usedefault]{%
	#3\indexn[#1][#2]{#3}{nl}%
}
\newcommandx{\indexnl}[3][1,2,usedefault]{\indexn[#1][#2]{#3}{nl}}

% nom de peuple
237

238 239 240 241 242 243
\newcommandx{\npe}[3][1,2,usedefault]{%
	#3\indexn[#1][#2]{#3}{npe}%
}
\newcommandx{\indexnpe}[3][1,2,usedefault]{\indexn[#1][#2]{#3}{npe}}
%%% commande générale pour indexer noms propre
\newcommandx{\indexn}[4][1,2,usedefault]{%
244 245 246 247 248
  % #1 -> précision pour nom ambigu
  % #2 -> renvoi 
  % #3->terme principal 
  % #4 -> index  
  \ifphilologue@noindex\else%
249 250 251 252 253 254 255 256
	\ifvoirindex%
		\ifnumbering%% si dans section numeroté
			\ledsidenote{#4:#1,#2,#3}%
		\else%
			\marginpar{#4:#1,#2,#3}%
		\fi%
	\fi%
	\ifstrempty{#1}{%
257
		\ifstrempty{#2}{\index[#4]{#3}}{\index[#4]{#3|see{#2}}\index[#4]{#2}}%cas de renvoi
258
	}{%
259
		\ifstrempty{#2}{\index[#4]{#3, #1}}{\index[#4]{#3, #1|see{#2}}\index[#4]{#2}}%
260
	}%
261
	\fi%
262
}
263
% commander des formes dans le corps d'un texte
264

265
\newcommandx{\englishforme}[2][2,usedefault]{\forme{\textlatin{#1}#2}}
266 267
\newcommandx{\latinforme}[2][2,usedefault]{\forme{\textlatin{#1}#2}}
\newcommandx{\greekforme}[2][2,usedefault]{\forme{\textgreek{#1}#2}}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
268
\newcommandx{\germanforme}[2][2,usedefault]{\forme{\textgerman{#1}#2}}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
269
\newcommandx{\italianforme}[2][2,usedefault]{\forme{\textitalian{#1}#2}}
270
\newrobustcmd{\forme}[1]{\enquote{#1}}
271
\let\formegreek\greekforme
272
\let\formeenglish\englishforme
Maïeul Rouquette's avatar
Maïeul Rouquette committed
273
\let\formelatin\latinforme
Maïeul Rouquette's avatar
Maïeul Rouquette committed
274
\let\formegerman\germanforme
Maïeul Rouquette's avatar
Maïeul Rouquette committed
275
\let\formeitalian\italianforme
Maïeul Rouquette's avatar
Maïeul Rouquette committed
276
% Diverse commandes
Maïeul Rouquette's avatar
Maïeul Rouquette committed
277
\newrobustcmd{\cf}{%
278
	cf.\@ifnextchar~{}{~}%
279
}
280
\newrobustcmd{\Cf}{%
Maïeul Rouquette's avatar
Maïeul Rouquette committed
281
	Cf.\@ifnextchar~{}{~}%
282
}
283
\newcommand{\sic}[1]{%
284
	\ifstrempty{#1}{\unskip\ (\emph{sic})}{#1\sic{}}%
Maïeul Rouquette's avatar
Maïeul Rouquette committed
285
}
286
\newrobustcmd{\renvoi}[1]{(\renvoinopar{#1})}
287
\newrobustcmd{\renvoicf}[1]{(\cf~\renvoinopar{#1})}
288
\newrobustcmd{\renvoinopar}[1]{\ref{#1} p.~\pageref{#1}}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
289
\newrobustcmd{\renvoinote}[1]{(\renvoinotenopar{#1})}
290
\newrobustcmd{\renvoinotenopar}[1]{p.~\pageref{#1} n.~\ref{#1}}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
291

292

293
\newcommand{\expliciter}[1]{\textins{=\,#1\unskip}}
294 295
% Manuscrit

296
\newrobustcmd{\ms}[1]{\emph{#1}}
297
\newcommand{\famms}[1]{\textbf{#1}}
298 299 300

% Figure

301
\renewcommand{\thefigure}{\arabic{figure}}
302 303 304
\ifdef{\thechapter}{
  \@removefromreset{figure}{chapter}
}{}
305

306 307 308 309 310 311 312 313
\newcommandx{\insertfigure}[5][4=p,5=portait,usedefault]{%
  %1) fichier AVEC extension
  %2) légende
  %3) label pour crossref(sans le carte:)
  %4) placement 
  %5) si égale à paysage, tourne la carte de 90°
	\IfStrEq{#5}{paysage}%
	  {%
314
	    \afterpage\bgroup
315 316
	    \begin{landscape}%
	    \begin{figure}[#4]%
317 318 319 320 321 322 323
	    \let\largeur=\textheight%
	  }%
	  {%
	   \begin{figure}[#4]%
	   \let\largeur=\textwidth%
	  }%
		\centering
324
		\includegraphics[width=\largeur]{\philologue@contenu img/figures/#1}
325
		\caption{#2}\label{figure:#3}
326 327
	\IfStrEq{#5}{paysage}%
	  {%
328 329
	    \end{figure}%
	    \end{landscape}
330
	    \egroup
331 332 333 334 335
	  }%
	  {%
	   \end{figure}%
	  }%
}
336
\newcommand{\reffigure}[1]{figure~\ref{figure:#1} p.~\pageref{figure:#1}}
337 338
% Stemma

339

340 341 342
\newfloat{stemma}{h}{stemma}
\floatname{stemma}{Stemma}

343
\newcommandx{\insertstemma}[3][3,usedefault]{%#3 -> titre court
344 345
	\begin{stemma}
		\centering
346
		\input{\philologue@contenu schemas/stemma/#1}
347 348 349 350
		\IfStrEq{#3}{}%
		  {\caption{#2}}%
		  {\caption[#3]{#2}}%
		  \label{stemma:#1}%
351 352
	\end{stemma}
}
353 354 355 356 357 358 359 360 361 362 363 364 365
\newsubfloat{stemma}
\newcommand{\insertmultiplestemma}[3]{
 \begin{stemma}
   \centering
   #3
   \caption{#2}\label{stemma:#1}
 \end{stemma}
}
\newcommand{\sepsubstemma}{\hskip 1cm}
\newcommand{\insertsubstemma}[2]{
	\subfloat[][\centering#2]{
	  \centering
	  \label{stemma:#1}
366
		\input{\philologue@contenu schemas/stemma/#1}
367 368
		}	
}
369
\newcommand{\refstemma}[1]{stemma~\ref{stemma:#1}\xspace}
370
\newcommand{\refmultiplestemmas}[1]{stemmas~\ref{stemma:#1}\xspace}
371 372


373 374
% carte

375
\newfloat{carte}{p}{carte}
376
\floatname{carte}{Carte}
377 378 379 380 381 382 383 384
\newcommandx{\insertcarte}[5][4=p,5=portait,usedefault]{%
  %1) fichier AVEC extension
  %2) légende
  %3) label pour crossref(sans le carte:)
  %4) placement 
  %5) si égale à paysage, tourne la carte de 90°
	\IfStrEq{#5}{paysage}%
	  {%
385
	    \afterpage\bgroup
386 387
	    \begin{landscape}
	    \begin{carte}[#4]%
388 389 390 391 392 393
	    \let\largeur=\textheight%
	  }%
	  {%
	   \begin{carte}[#4]%
	   \let\largeur=\textwidth%
	  }%
394
		\centering
395
		\includegraphics[width=\largeur]{\philologue@contenu img/cartes/#1}
396
		\caption{#2}\label{carte:#3}
397 398
	\IfStrEq{#5}{paysage}%
	  {%
399 400
	    \end{carte}%
	    \end{landscape}
401
	    \egroup
402 403 404 405
	  }%
	  {%
	   \end{carte}%
	  }%
406
}
407
\newcommand{\refcarte}[1]{carte~\ref{carte:#1} p.~\pageref{carte:#1}}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
408
% tableau
409 410

\renewcommand{\thetable}{\arabic{table}}
411 412 413
\ifdef{\thechapter}{
  \@removefromreset{table}{chapter}
}{}
414
\setcounter{LTchunksize}{100}
415
\newcommandx{\inserttableau}[4][3,4=h,usedefault]{%
416 417
	\ifstrequal{#3}{nofloat}%
		{\begingroup}%
418
		{\begin{table}[#4]}%
419 420 421 422
			\@inserttableau{#1}{#2}[#3]%
	\ifstrequal{#3}{nofloat}%
		{\endgroup}
		{\end{table}}%
423
}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
424
\WithSuffix\newcommand\inserttableau*[2]{%
425 426 427 428 429 430
	\afterpage{%
  	\begin{landscape}
  	  \let\leftmark\relax
        \let\rightmark\relax
  	 \let\tablefootnote\footnote%
  	  \ifstrequal{#2}{}%
431
  	    {\input{\philologue@contenu tableaux/#1}}%
432 433 434 435
  	    {%
  	     \@inserttableau{#1}{#2}[nofloat]}%
  	\end{landscape}
	}%
436
}
437
\newcommandx{\@inserttableau}[3][3,usedefault]{%
438 439
	\bgroup
		\let\footnote\tablefootnote%
440
	  \input{\philologue@contenu tableaux/#1}%
441 442 443 444
	  \ifstrequal{#3}{nofloat}%
		  {\centering\nopagebreak\captionof{table}{#2}}%
		  {\centering\caption{#2}}\label{tableau:#1}%
	\egroup%
445
}
446 447
\newcommand{\reftableau}[1]{tableau~\ref{tableau:#1} p.~\pageref{tableau:#1}}
\WithSuffix\newcommand\reftableau*[1]{\ref{tableau:#1} p.~\pageref{tableau:#1}}
448

Maïeul Rouquette's avatar
Maïeul Rouquette committed
449
\setlength{\doublerulesep}{0pt}
450 451
\newcommandx{\titrecolonne}[2][2]{%
  \ifstrempty{#2}%
452
    {\hfill\centering\arraybackslash\emph{#1}\hfill\null}%
453
    {\rotatebox{#2}{\emph{#1\ }}}%
454
}%
455 456 457 458 459 460 461 462 463 464 465 466 467 468

\newcounter{numligne}
\newcommand{\pasnumligne}{\booltrue{pasnumligne}}
\newbool{pasnumligne}
\newcolumntype{N}{%
	>{}{l}%
	<{\notbool{pasnumligne}%
		{\stepcounter{numligne}\thenumligne}%
		{\boolfalse{pasnumligne}}}%
}

\pretocmd{\longtable}{\setcounter{numligne}{0}}{}{}


Maïeul Rouquette's avatar
Maïeul Rouquette committed
469
% Charger reledmac en dernier, car il perturbe makeindex
Maïeul Rouquette's avatar
Maïeul Rouquette committed
470

471
\RequirePackage[noend,noeledsec,series={\philologue@series},noledgroup]{reledmac}%Pas de series, 
472
\RequirePackage[shiftedpstarts]{reledpar}%pas de nomaxlines, trop fort
473
\setgoalfraction{0.95}
474 475
\Xparindent
\parindentX
476 477 478

\Xbhooknote{\def\baselinestretch {\setspace@singlespace}\parindent 1em}%Uniformiser les indentations
\bhooknoteX{\def\baselinestretch {\setspace@singlespace}\parindent 1em}%Uniformiser les indentations
479 480
  \Xbhookgroup{\def\baselinestretch {\setspace@singlespace}}
  \bhookgroupX{\def\baselinestretch {\setspace@singlespace}}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
481 482 483

%\beforenotesX{\baselineskip}
%\Xbeforenotes{\baselineskip}
484

485
\Xnotenumfont{\bfseries}
486 487 488 489

 \maxhnotesX{0.8\textheight}%A ne pas confondre avec \vsize
 \Xmaxhnotes{0.8\textheight}%A ne pas confondre avec \vsize

Maïeul Rouquette's avatar
Maïeul Rouquette committed
490 491
\newcommand{\titulus}[1]{\textbf{\emph{#1}}}
\newcommand{\saut}{}
492 493 494 495 496

\AtBeginDocument{
  \arrangementX[A]{paragraph}
  \Xarrangement[A]{paragraph}
}
497 498
\Xparindent[A][false]
\parindentX[A][false]
499 500
\Xcolalign{\RaggedRight}
\colalignX{\RaggedRight}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
501

502 503
% Typo local

504
\Xendlineprefixsingle[SEref]{l.~}
505 506
\Xendafterpagenumber[SEref,SErefonlypage,SErefwithpage]{\ }
\Xendbeforepagenumber[SEref,SErefonlypage,SErefwithpage]{p.~}
507 508 509
\setSErefprefixsingle{l.~}
\Xlinerangeseparator[SEref]{-}
\Xendlinerangeseparator[SErefonlypage,SErefwithpage]{-}
510 511


Maïeul Rouquette's avatar
Maïeul Rouquette committed
512
\setRlineflag{}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
513 514
\setstanzaindents{2,1}
\setcounter{stanzaindentsrepetition}{1}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
515
\sethangingsymbol{[\,}
Maïeul Rouquette's avatar
Maïeul Rouquette committed
516

517 518 519
% Citation

\renewenvironment{quotation}
520
               {\ifphilologue@word\vspace{2\parskip}\fi\par\small\singlespacing%
521 522 523 524 525 526
               \list{}{\advance\leftmargin 1.5em%
               	       \listparindent 1.5em%
                        \itemindent    \listparindent
                        \rightmargin   \leftmargin
                        \parsep        \z@ \@plus\p@}%
                \item\relax}
527
               {\endlist\ifphilologue@word\vspace{2\parskip}\fi}
528 529


Maïeul Rouquette's avatar
Maïeul Rouquette committed
530
% Commande pour afficher des textes en //
531

532 533 534 535 536 537 538 539 540 541 542 543 544
\ifphilologue@word
	\newenvironment{col}{
		\let\qenglish\quotation
		\let\endqenglish\endquotation
		\let\qgreek\quotation
		\let\endqgreek\endquotation
		\let\qlatin\quotation
		\let\endqlatin\endquotation
		\let\trad\quotation
		\let\endtrad\endquotation
	 }
	{}
\else
545
	\setlength{\Lcolwidth}{0.48\textwidth} \setlength{\Rcolwidth}{0.48\textwidth}
546 547 548 549
	\newenvironment{col}{%
	\setlength{\columnrulewidth}{0.5pt}
	\par
	\small
550
	\sloppy
551 552 553 554 555 556 557
	\singlespacing
	\begin{pairs}
		\emergencystretch=0.05\hsize
		
		
		\newenvironment{qenglish}{\begin{Leftside}\begin{english}\beginnumbering\autopar}
	{
558
	
559
	\endnumbering\end{english}\end{Leftside}}
560
	
Maïeul Rouquette's avatar
Maïeul Rouquette committed
561
	
562 563 564 565 566 567 568 569 570 571
		\newenvironment{qlatin}{\begin{Leftside}\begin{hyphenrules}{latin}\beginnumbering\autopar}
	{
	
	\endnumbering\end{hyphenrules}\end{Leftside}}
	
	
		\newenvironment{qgreek}{\begin{Leftside}\begin{hyphenrules}{greek}\beginnumbering\autopar}
	{
	
	\endnumbering\end{hyphenrules}\end{Leftside}}
572 573 574
	\newenvironment{qfrench}{\begin{Leftside}\beginnumbering\autopar}{
	
	\endnumbering\end{Leftside}}
575 576 577 578 579 580 581 582
		
		\newenvironment{trad}{\begin{Rightside}\beginnumbering\autopar}
	{
	
	\endnumbering\end{Rightside}}
	}
	{
	\end{pairs}
583
	\Columns
584 585
	}
\fi
586 587
% Pour comparer des textes
\newcommand{\para}[1]{\textbf{#1}}
588
\newcommand{\parasec}[1]{\emph{#1}}% // secondaire ou avec un texte secondaire
589
\newcommand{\diff}[1]{\textbf{#1}}
590
\newenvironment{comparaison}[2]{%
591
	\par
592
	\small
593
	\singlespacing
594
	\begin{longtable*}{p{\dimexpr0.5\textwidth-2\tabcolsep\relax}|p{\dimexpr0.5\textwidth-2\tabcolsep\relax}}
595 596 597
\titrecolonne{#1} & \titrecolonne{#2} \\%
	\endhead%
}{%
598
	\end{longtable*}%
Maïeul Rouquette's avatar
Maïeul Rouquette committed
599 600
}

601

602 603


604 605
% Pour supprimer la ponctuation avant un signe double (du type (?))
% http://tex.stackexchange.com/a/187881/7712
606
\DeclareRobustCommand{\nospace}[1]{\nofrench@punctuation#1\french@punctuation}
607

608
%% Bug introduit par https://github.com/reutenauer/polyglossia/commit/6bcba5a1899dca30d62f665cead8b00cb5a4be2e, signalé en https://github.com/reutenauer/polyglossia/issues/141
609
% + correction du bug avec TeXlive 2016 signalée en 
610

611
\apptocmd{\french@punctuation}{%
612 613 614 615
     \XeTeXinterchartoks \french@punctguillstart 4095 = {\nobreakspace\xpg@nospace}% "«  " -> "«~"
     \XeTeXinterchartoks 4095 \french@punctguillend = {\xpg@unskip\nobreakspace}% "  »" -> "~»"
     \XeTeXinterchartoks 4095 \french@punctthin = {\xpg@unskip\nobreak\thinspace}%
     \XeTeXinterchartoks 4095 \french@punctthick = {\xpg@unskip\nobreakspace}%  
616
}{}{}
617