[Po4a-commits] "po4a/lib/Locale/Po4a LaTeX.pm,1.7,1.8"
Nicolas FRANCOIS
nekral-guest at alioth.debian.org
Fri Sep 16 20:55:53 UTC 2005
Update of /cvsroot/po4a/po4a/lib/Locale/Po4a
In directory haydn:/tmp/cvs-serv1566/lib/Locale/Po4a
Modified Files:
LaTeX.pm
Log Message:
Update to the new TeX module (new syntax for the generic commands).
Index: LaTeX.pm
===================================================================
RCS file: /cvsroot/po4a/po4a/lib/Locale/Po4a/LaTeX.pm,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- LaTeX.pm 24 Apr 2005 01:09:24 -0000 1.7
+++ LaTeX.pm 16 Sep 2005 20:55:51 -0000 1.8
@@ -69,240 +69,249 @@
@EXPORT= qw();
use Locale::Po4a::TeX;
-use subs qw(&untranslated &translate_joined
- &push_environment &parse_definition_file
- ®ister_generic);
-*untranslated = \&Locale::Po4a::TeX::untranslated;
-*translate_joined = \&Locale::Po4a::TeX::translate_joined;
-*push_environment = \&Locale::Po4a::TeX::push_environment;
-*parse_definition_file = \&Locale::Po4a::TeX::parse_definition_file;
-*register_generic = \&Locale::Po4a::TeX::register_generic;
+use subs qw(&untranslated
+ &parse_definition_file
+ ®ister_generic_command
+ ®ister_generic_environment);
+*untranslated = \&Locale::Po4a::TeX::untranslated;
+*parse_definition_file = \&Locale::Po4a::TeX::parse_definition_file;
+*register_generic_command = \&Locale::Po4a::TeX::register_generic_command;
+*register_generic_environment = \&Locale::Po4a::TeX::register_generic_environment;
use vars qw($RE_ESCAPE $ESCAPE
$no_wrap_environments $separated_commands
%commands %environments
%command_categories %separated
+ %command_parameters %environment_parameters
%env_separators
@exclude_include);
-*RE_ESCAPE = \$Locale::Po4a::TeX::RE_ESCAPE;
-*ESCAPE = \$Locale::Po4a::TeX::ESCAPE;
-*no_wrap_environments = \$Locale::Po4a::TeX::no_wrap_environments;
-*separated_commands = \$Locale::Po4a::TeX::separated_commands;
-*commands = \%Locale::Po4a::TeX::commands;
-*environments = \%Locale::Po4a::TeX::environments;
-*command_categories = \%Locale::Po4a::TeX::command_categories;
-*separated = \%Locale::Po4a::TeX::separated;
-*env_separators = \%Locale::Po4a::TeX::env_separators;
-*exclude_include = \@Locale::Po4a::TeX::exclude_include;
+*RE_ESCAPE = \$Locale::Po4a::TeX::RE_ESCAPE;
+*ESCAPE = \$Locale::Po4a::TeX::ESCAPE;
+*no_wrap_environments = \$Locale::Po4a::TeX::no_wrap_environments;
+*separated_commands = \$Locale::Po4a::TeX::separated_commands;
+*commands = \%Locale::Po4a::TeX::commands;
+*environments = \%Locale::Po4a::TeX::environments;
+*command_categories = \%Locale::Po4a::TeX::command_categories;
+*separated = \%Locale::Po4a::TeX::separated;
+*env_separators = \%Locale::Po4a::TeX::env_separators;
+*exclude_include = \@Locale::Po4a::TeX::exclude_include;
+*command_parameters = \%Locale::Po4a::TeX::command_parameters;
+*environment_parameters = \%Locale::Po4a::TeX::environment_parameters;
# documentclass:
# Only read the documentclass in order to find some po4a directives.
# FIXME: The documentclass could contain translatable strings.
# Maybe it should be implemented as \include{}.
-$separated_commands .= " documentclass";
$commands{'documentclass'} = sub {
my $self = shift;
- my ($command,$variant,$opts,$args,$env) = (shift,shift,shift,shift,shift);
+ my ($command,$variant,$args,$env) = (shift,shift,shift,shift);
# Only try to parse the file. We don't want to fail or parse this file
# if it is a standard documentclass.
- parse_definition_file($self, $args->[0].".cls", 1);
+ parse_definition_file($self, $args->[1].".cls", 1);
- my ($t, at e) = untranslated($self,$command,$variant,$opts,$args,$env);
+ my ($t, at e) = untranslated($self,$command,$variant,$args,$env);
return ($t, @$env);
};
+$command_parameters{'documentclass'}{'types'} = ();
+push @{$command_parameters{'documentclass'}{'types'}}, '{';
+$separated{'documentclass'} = 1;
# LaTeX 2
# I choosed not to translate files, counters, lengths
-register_generic("*addcontentsline,0,3,,3");
-register_generic("address,0,1,,1"); # lines are seperated by \\
-register_generic("*addtocontents,0,2,,2");
-register_generic("*addtocounter,0,2,,");
-register_generic("*addtolength,0,2,,");
-register_generic("*addvspace,0,1,,");
-register_generic("alph,0,1,,"); # another language may not want this alphabet
-register_generic("arabic,0,1,,"); # another language may not want an arabic numbering
-register_generic("*author,0,1,,1"); # authors are separated by \and
-register_generic("bibitem,1,1,,");
-register_generic("*bibliographystyle,0,1,,"); # BibTeX
-register_generic("*bibliography,0,1,,"); # BibTeX
-register_generic("*centerline,0,1,,1");
-register_generic("*caption,1,1,,1");
-register_generic("cc,0,1,,1");
-register_generic("circle,1,1,,");
-register_generic("cite,1,1,1,");
-register_generic("cline,0,1,,");
-register_generic("closing,0,1,,1");
-register_generic("dashbox,0,1,,"); # followed by a (w,h) argument
-register_generic("date,0,1,,1");
-register_generic("*enlargethispage,0,1,,");
-register_generic("ensuremath,0,1,,1");
-register_generic("*fbox,0,1,,1");
-register_generic("fnsymbol,0,1,,");
-register_generic("*footnote,1,1,,1");
-register_generic("*footnotemark,1,0,,");
-register_generic("*footnotetext,1,1,,1");
-register_generic("frac,0,2,,1 2");
-register_generic("*frame,0,1,,1");
-register_generic("*framebox,2,1,,1"); # There is another form in picture environment
-register_generic("*hspace,1,1,,");
-register_generic("*hyphenation,0,1,,1"); # Translators may wish to add/remove words
-register_generic("include,0,1,,"); # file
-#register_generic("includeonly,0,1,,"); # should not be supported for now
-register_generic("input,0,1,,"); # file
-register_generic("*item,1,0,1,");
-register_generic("*label,0,1,,");
-register_generic("lefteqn,0,1,,1");
-register_generic("line,0,0,,"); # The first argument is (x,y)
-register_generic("*linebreak,1,0,,");
-register_generic("linethickness,0,1,,");
-register_generic("location,0,1,,1");
-register_generic("makebox,2,1,,1"); # There's another form in picture environment
-register_generic("makelabels,0,1,,");
-register_generic("*markboth,0,2,,1 2");
-register_generic("*markright,0,1,,1");
-register_generic("mathcal,0,1,,1"); #
-register_generic("mathop,0,1,,1");
-register_generic("mbox,0,1,,1");
-register_generic("multicolumn,0,3,,3");
-register_generic("multiput,0,0,,"); # The first arguments are (x,y)(dx,dy)
-register_generic("name,0,1,,1");
-register_generic("*newcommand,0,-1,,2"); # The second argument is [args]
-register_generic("*newcounter,0,1,,"); # The second argument is [counter]
-register_generic("*newenvironment,-1,-1,,"); # The second argument is [args]
-register_generic("*newfont,0,2,,");
-register_generic("*newlength,0,1,,");
-register_generic("*newsavebox,0,1,,");
-register_generic("*newtheorem,0,2,,2"); # Two forms, the optionnal arg is not the first one
-register_generic("nocite,0,1,,");
-register_generic("nolinebreak,1,0,,");
-register_generic("*nopagebreak,1,0,,");
-register_generic("opening,0,1,,1");
-register_generic("oval,0,0,,"); # The first argument is (w,h)
-register_generic("overbrace,0,1,,1");
-register_generic("overline,0,1,,1");
-register_generic("*pagebreak,1,0,,");
-register_generic("*pagenumbering,0,1,,1");
-register_generic("pageref,0,1,,");
-register_generic("*pagestyle,0,1,,");
-register_generic("*parbox,3,2,,2");
-register_generic("providecommand,0,1,,"); #
-register_generic("put,0,0,,"); # The first argument is (x,y)
-register_generic("raisebox,0,1,,"); # Optional arguments in 2nd & 3rd position
-register_generic("ref,0,1,,");
-register_generic("*refstepcounter,0,1,,");
-register_generic("*renewcommand,0,-1,,"); # The second argument is [args]
-register_generic("*renewenvironment,0,1,,"); # The second argument is [args]
-register_generic("roman,0,1,,"); # another language may not want a roman numbering
-register_generic("rule,1,2,,,");
-register_generic("savebox,0,1,,"); # Optional arguments in 2nd & 3rd position
-register_generic("sbox,0,2,,2");
-register_generic("*setcounter,0,2,,");
-register_generic("*setlength,0,2,,");
-register_generic("*settodepth,0,2,,2");
-register_generic("*settoheight,0,2,,2");
-register_generic("*settowidth,0,2,,2");
-register_generic("shortstack,1,1,,1");
-register_generic("signature,0,1,,1");
-register_generic("sqrt,1,1,1,1");
-register_generic("stackrel,0,2,,1 2");
-register_generic("stepcounter,0,1,,");
-register_generic("*subfigure,1,1,1,1");
-register_generic("symbol,0,1,,1");
-register_generic("telephone,0,1,,1");
-register_generic("thanks,0,1,,1");
-register_generic("*thispagestyle,0,1,,");
-register_generic("*title,0,1,,1");
-register_generic("typeout,0,1,,1");
-register_generic("typein,1,1,,1");
-register_generic("twocolumn,1,0,1,");
-register_generic("underbrace,0,1,,1");
-register_generic("underline,0,1,,1");
-register_generic("*usebox,0,1,,");
-register_generic("usecounter,0,1,,");
-register_generic("*usepackage,1,1,,");
-register_generic("value,0,1,,");
-register_generic("vector,0,0,,"); # The first argument is (x,y)
-register_generic("vphantom,0,1,,1");
-register_generic("*vspace,1,1,,");
+register_generic_command("*addcontentsline,{}{}{_}");
+register_generic_command("address,{_}"); # lines are seperated by \\
+register_generic_command("*addtocontents,{}{_}");
+register_generic_command("*addtocounter,{}{}");
+register_generic_command("*addtolength,{}{}");
+register_generic_command("*addvspace,{}");
+register_generic_command("alph,{}"); # another language may not want this alphabet
+register_generic_command("arabic,{}"); # another language may not want an arabic numbering
+register_generic_command("*author,{_}"); # authors are separated by \and
+register_generic_command("bibitem,[]{}");
+register_generic_command("*bibliographystyle,{}"); # BibTeX
+register_generic_command("*bibliography,{}"); # BibTeX
+register_generic_command("*centerline,{_}");
+register_generic_command("*caption,[]{_}");
+register_generic_command("cc,{_}");
+register_generic_command("circle,[]{}");
+register_generic_command("cite,[_]{}");
+register_generic_command("cline,{}");
+register_generic_command("closing,{_}");
+register_generic_command("dashbox,{}"); # followed by a (w,h) argument
+register_generic_command("date,{_}");
+register_generic_command("*enlargethispage,{}");
+register_generic_command("ensuremath,{_}");
+register_generic_command("*fbox,{_}");
+register_generic_command("fnsymbol,{}");
+register_generic_command("*footnote,[]{_}");
+register_generic_command("*footnotemark,[]");
+register_generic_command("*footnotetext,[]{_}");
+register_generic_command("frac,{_}{_}");
+register_generic_command("*frame,{_}");
+register_generic_command("*framebox,[][]{_}"); # There is another form in picture environment
+register_generic_command("*hbox,{}");
+register_generic_command("*hspace,[]{}");
+register_generic_command("*hyphenation,{_}"); # Translators may wish to add/remove words
+register_generic_command("include,{}");
+#register_generic_command("includeonly,{}"); # should not be supported for now
+register_generic_command("*index,{_}");
+register_generic_command("input,{}");
+register_generic_command("*item,[_]");
+register_generic_command("*label,{}");
+register_generic_command("lefteqn,{_}");
+register_generic_command("line,"); # The first argument is (x,y)
+register_generic_command("*linebreak,[]");
+register_generic_command("linethickness,{}");
+register_generic_command("location,{_}");
+register_generic_command("makebox,[][]{_}"); # There's another form in picture environment
+register_generic_command("makelabels,{}");
+register_generic_command("*markboth,[]{_}{_}");
+register_generic_command("*markright,{_}");
+register_generic_command("mathcal,{_}");
+register_generic_command("mathop,{_}");
+register_generic_command("mbox,{_}");
+register_generic_command("multicolumn,{}{}{_}");
+register_generic_command("multiput,"); # The first arguments are (x,y)(dx,dy)
+register_generic_command("name,{_}");
+register_generic_command("*newcommand,{}[][]{_}");
+register_generic_command("*newcounter,{}[]");
+register_generic_command("*newenvironment,{}[]{_}{_}");
+register_generic_command("*newfont,{}{}");
+register_generic_command("*newlength,{}");
+register_generic_command("*newsavebox,{}");
+register_generic_command("*newtheorem,{}{_}"); # Two forms, the optionnal arg is not the first one
+register_generic_command("nocite,{}");
+register_generic_command("nolinebreak,[]");
+register_generic_command("*nopagebreak,[]");
+register_generic_command("opening,{_}");
+register_generic_command("oval,"); # The first argument is (w,h)
+register_generic_command("overbrace,{_}");
+register_generic_command("overline,{_}");
+register_generic_command("*pagebreak,[]");
+register_generic_command("*pagenumbering,{_}");
+register_generic_command("pageref,{}");
+register_generic_command("*pagestyle,{}");
+register_generic_command("*parbox,[][][]{}{_}");
+register_generic_command("providecommand,{}[][]{_}");
+register_generic_command("put,"); # The first argument is (x,y)
+register_generic_command("raisebox,{}[][]{_}");
+register_generic_command("ref,{}");
+register_generic_command("*refstepcounter,{}");
+register_generic_command("*renewcommand,{}[][]{_}");
+register_generic_command("*renewenvironment,{}[]{_}{_}");
+register_generic_command("roman,{}"); # another language may not want a roman numbering
+register_generic_command("rule,[]{}{}");
+register_generic_command("savebox,{}"); # Optional arguments in 2nd & 3rd position
+register_generic_command("sbox,{}{_}");
+register_generic_command("*setcounter,{}{}");
+register_generic_command("*setlength,{}{}");
+register_generic_command("*settodepth,{}{_}");
+register_generic_command("*settoheight,{}{_}");
+register_generic_command("*settowidth,{}{_}");
+register_generic_command("shortstack,[]{_}");
+register_generic_command("signature,{_}");
+register_generic_command("sqrt,[_]{_}");
+register_generic_command("stackrel,{_}{_}");
+register_generic_command("stepcounter,{}");
+register_generic_command("*subfigure,[_]{_}");
+register_generic_command("symbol,{_}");
+register_generic_command("telephone,{_}");
+register_generic_command("thanks,{_}");
+register_generic_command("*thispagestyle,{}");
+register_generic_command("*title,{_}");
+register_generic_command("typeout,{_}");
+register_generic_command("typein,[]{_}");
+register_generic_command("twocolumn,[_]");
+register_generic_command("underbrace,{_}");
+register_generic_command("underline,{_}");
+register_generic_command("*usebox,{}");
+register_generic_command("usecounter,{}");
+register_generic_command("*usepackage,[]{}");
+register_generic_command("value,{}");
+register_generic_command("vector,"); # The first argument is (x,y)
+register_generic_command("vphantom,{_}");
+register_generic_command("*vspace,[]{}");
+register_generic_command("*vbox,{}");
+register_generic_command("*vcenter,{}");
-register_generic("*part,1,1,1,1");
-register_generic("*chapter,1,1,1,1");
-register_generic("*section,1,1,1,1");
-register_generic("*subsection,1,1,1,1");
-register_generic("*subsubsection,1,1,1,1");
-register_generic("*paragraph,1,1,1,1");
-register_generic("*subparagraph,1,1,1,1");
+register_generic_command("*part,[_]{_}");
+register_generic_command("*chapter,[_]{_}");
+register_generic_command("*section,[_]{_}");
+register_generic_command("*subsection,[_]{_}");
+register_generic_command("*subsubsection,[_]{_}");
+register_generic_command("*paragraph,[_]{_}");
+register_generic_command("*subparagraph,[_]{_}");
-register_generic("textrm,0,1,,1");
-register_generic("textit,0,1,,1");
-register_generic("emph,0,1,,1");
-register_generic("textmd,0,1,,1");
-register_generic("textbf,0,1,,1");
-register_generic("textup,0,1,,1");
-register_generic("textsl,0,1,,1");
-register_generic("textsf,0,1,,1");
-register_generic("textsc,0,1,,1");
-register_generic("texttt,0,1,,1");
-register_generic("textnormal,0,1,,1");
-register_generic("mathrm,0,1,,1");
-register_generic("mathsf,0,1,,1");
-register_generic("mathtt,0,1,,1");
-register_generic("mathit,0,1,,1");
-register_generic("mathnormal,0,1,,1");
-register_generic("mathversion,0,1,,");
+register_generic_command("textrm,{_}");
+register_generic_command("textit,{_}");
+register_generic_command("emph,{_}");
+register_generic_command("textmd,{_}");
+register_generic_command("textbf,{_}");
+register_generic_command("textup,{_}");
+register_generic_command("textsl,{_}");
+register_generic_command("textsf,{_}");
+register_generic_command("textsc,{_}");
+register_generic_command("texttt,{_}");
+register_generic_command("textnormal,{_}");
+register_generic_command("mathrm,{_}");
+register_generic_command("mathsf,{_}");
+register_generic_command("mathtt,{_}");
+register_generic_command("mathit,{_}");
+register_generic_command("mathnormal,{_}");
+register_generic_command("mathversion,{}");
-register_generic("*contentspage,0,0,,");
-register_generic("*tablelistpage,0,0,,");
-register_generic("*figurepage,0,0,,");
+register_generic_command("*contentspage,");
+register_generic_command("*tablelistpage,");
+register_generic_command("*figurepage,");
-register_generic("*PassOptionsToPackage,0,2,,");
+register_generic_command("*PassOptionsToPackage,{}{}");
-register_generic("*ifthenelse,0,3,,2 3");
+register_generic_command("*ifthenelse,{}{_}{_}");
# graphics
-register_generic("*includegraphics,1,1,,");
-register_generic("*graphicspath,0,1,,");
-register_generic("*resizebox,0,3,,3");
-register_generic("*scalebox,0,2,,2");
-register_generic("*rotatebox,0,2,,2");
+register_generic_command("*includegraphics,[]{}");
+register_generic_command("*graphicspath,{}");
+register_generic_command("*resizebox,{}{}{_}");
+register_generic_command("*scalebox,{}{_}");
+register_generic_command("*rotatebox,{}{_}");
# url
-register_generic("UrlFont,0,1,,");
-register_generic("*urlstyle,0,1,,");
+register_generic_command("UrlFont,{}");
+register_generic_command("*urlstyle,{}");
# hyperref
-register_generic("href,0,2,0,2"); # 1:URL
-register_generic("url,0,1,,"); # URL
-register_generic("nolinkurl,0,1,,"); # URL
-register_generic("hyperbaseurl,0,1,,"); # URL
-register_generic("hyperimage,0,1,,"); # URL
-register_generic("hyperdef,0,3,,3"); # 1:category, 2:name
-register_generic("hyperref,0,4,,4"); # 1:URL, 2:category, 3:name
-register_generic("hyperlink,0,2,,2"); # 1:name
-register_generic("*hypersetup,0,1,,1");
-register_generic("hypertarget,0,2,,2"); # 1:name
-register_generic("autoref,0,1,,"); # 1:label
+register_generic_command("href,{}{_}"); # 1:URL
+register_generic_command("url,{}"); # URL
+register_generic_command("nolinkurl,{}"); # URL
+register_generic_command("hyperbaseurl,{}"); # URL
+register_generic_command("hyperimage,{}"); # URL
+register_generic_command("hyperdef,{}{}{_}"); # 1:category, 2:name
+register_generic_command("hyperref,{}{}{}{_}"); # 1:URL, 2:category, 3:name
+register_generic_command("hyperlink,{}{_}"); # 1:name
+register_generic_command("*hypersetup,{_}");
+register_generic_command("hypertarget,{}{_}"); # 1:name
+register_generic_command("autoref,{}"); # 1:label
-register_generic("*selectlanguage,0,1,,");
+register_generic_command("*selectlanguage,{}");
# color
-register_generic("*definecolor,0,3,,");
-register_generic("*textcolor,0,2,,2");
-register_generic("*colorbox,0,2,,2");
-register_generic("*fcolorbox,0,3,,3");
-register_generic("*pagecolor,0,1,,1");
-register_generic("*color,0,1,,1");
+register_generic_command("*definecolor,{}{}{}");
+register_generic_command("*textcolor,{}{_}");
+register_generic_command("*colorbox,{}{_}");
+register_generic_command("*fcolorbox,{}{}{_}");
+register_generic_command("*pagecolor,{_}");
+register_generic_command("*color,{_}");
# equations/theorems
-register_generic("*qedhere,0,0,,");
-register_generic("*qedsymbol,0,0,,");
-register_generic("*theoremstyle,0,1,,");
-register_generic("*proclaim,0,1,,1");
-register_generic("*endproclaim,0,0,,");
-register_generic("*shoveleft,0,1,,1");
-register_generic("*shoveright,0,1,,1");
+register_generic_command("*qedhere,");
+register_generic_command("*qedsymbol,");
+register_generic_command("*theoremstyle,{}");
+register_generic_command("*proclaim,{_}");
+register_generic_command("*endproclaim,");
+register_generic_command("*shoveleft,{_}");
+register_generic_command("*shoveright,{_}");
# commands without arguments. This is better than untranslated or
# translate_joined because the number of arguments will be checked.
@@ -330,21 +339,23 @@
*fboxsep *fboxrule
*itemi *itemii *itemiii *itemiv
*theitemi *theitemii *theitemiii *theitemiv)) {
- register_generic("$_,0,0,,");
+ register_generic_command("$_,");
}
-$separated_commands .= " begin end hbox vbox vcenter";
-$command_categories{'translate_joined'} .= " hbox vbox vcenter";
# standard environments.
-foreach (qw(abstract align array cases center description displaymath enumerate
- eqnarray equation figure flushleft flushright footnotesize itemize
- letter list lrbox minipage multicols multline picture proof quotation quote
- sloppypar tabbing table tabular thebibliography theorem titlepage
+# FIXME: All these definition should be re-checked
+foreach (qw(abstract align align* array cases center description displaymath document enumerate
+ eqnarray equation equation* figure flushleft flushright footnotesize itemize
+ letter list lrbox minipage multline multline* picture proof quotation quote
+ sloppypar tabbing table thebibliography theorem titlepage
trivlist verbatim verse wrapfigure)) {
- $environments{$_} = \&push_environment;
+ register_generic_environment("$_,");
}
+register_generic_environment("tabular,{}");
+register_generic_environment("tabular*,{}{}");
+register_generic_environment("multicols,{}");
# Commands and environments with separators.
More information about the Po4a-commits
mailing list