script lua pour permettre la sélection du mode de compilation par un argument sur la ligne de commande

Cette révision appartient à :
Yann Salmon
2018-08-05 21:59:19 +02:00
Parent 7a15dd29aa
révision 97ce845259

Voir le fichier

@@ -1,22 +1,44 @@
\NeedsTeXFormat{LaTeX2e} \NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ysbeamerarticle} \ProvidesClass{ysbeamerarticle}
\def\@classoptionslist{french} \g@addto@macro\@classoptionslist{,french}
\PassOptionsToClass{french,10pt,a4paper,DIV=18}{scrartcl} \PassOptionsToClass{french,10pt,a4paper,DIV=18}{scrartcl}
\PassOptionsToClass{french,aspectratio=43}{beamer} \PassOptionsToClass{french}{beamer}
\RequirePackage{luacode} \RequirePackage{luacode}
\@ifundefined{beamerarticle}{\def\CLASSNAME{beamer}}{\ifnum \beamerarticle = 1 \def\CLASSNAME{scrartcl}\else \def\CLASSNAME{beamer}\fi}% \@ifundefined{beamerarticle}{\def\CLASSNAME{beamer}}{\ifnum \beamerarticle = 1 \def\CLASSNAME{scrartcl}\else \def\CLASSNAME{beamer}\fi}%
% %
\begin{luacode*} \begin{luacode*}
local beamer = [[\gdef\CLASSNAME{beamer}\wlog{CLASSNAME regle a beamer}]] function parseargv()
local scrartcl = [[\gdef\CLASSNAME{scrartcl}\wlog{CLASSNAME regle a scrartcl}]] local rep = {}
if string.sub(tex.jobname, -5) == "-PRES" then for k, x in pairs(arg) do
texio.write_nl("-PRES detecte") local kw, vw = string.match(x, "([%w_%-%.]+)=?([%w_%-%./]*)")
rep[kw] = vw
end
return rep
end
function string:endswith(suff)
return suff == "" or string.sub(self, -string.len(suff)) == suff
end
local arguments = parseargv()
local beamer = [[\gdef\CLASSNAME{beamer}]]
local scrartcl = [[\gdef\CLASSNAME{scrartcl}]]
if arguments["-beamerarticle"] == nil then
texio.write_nl("-beamerarticle est nil")
if string.endswith(tex.jobname, "-PRES") then
tex.print(beamer) tex.print(beamer)
elseif string.sub(tex.jobname, -6) == "-PRINT" then elseif string.endswith(tex.jobname, "-PRINT") then
tex.print(scrartcl) tex.print(scrartcl)
texio.write_nl("-PRINT detecte")
else else
texio.write_nl("pas de suffixe detecte") texio.write_nl("tex.jobname sans suffixe intéressant : "..tex.jobname)
end
elseif arguments["-beamerarticle"] == "0" then
tex.print(beamer)
elseif arguments["-beamerarticle"] == "1" then
tex.print(scrartcl)
else
texio.write_nl("Erreur : arguments.-beamerarticle vaut "..arguments["-beamerarticle"])
end end
\end{luacode*} \end{luacode*}
\LoadClass{\CLASSNAME} \LoadClass{\CLASSNAME}