List Info

Thread: Plans for Template-Latex




Plans for Template-Latex
user name
2006-06-01 11:42:37
Hi Simon

Thanks for your input.  As you say most of your points are
not directly 
relevant to the TT plugin, although I will have a look at
performance 
and error handling.  I think that your points are relevant
to other 
Template-Latex users and am posting back to the list.

The plugin should be able to distinguish between different
types of 
errors and warnings (by examining the latex program output)
and maybe 
raise one of a predefined set of exceptions, with filter
options to 
specify whether it should abort or continue on errors.  This
would help 
in cases where it is imperative that documents are complete
(i.e. abort 
on any error or missing image) or where you want the system
to deliver 
whatever it can (i.e. keep on going whatever the LaTeX
error).  I think 
this is preferable to trying to determine whether you have
got valid 
LaTeX input (just as "only perl can parse Perl",
"only latex can parse 
LaTeX").

With regards layers on top of the LaTeX plugin, I think that
might be 
something to think of later.  There might be some mileage in
a library, 
something akin to "Splash", to address certain
well defined tasks.

Regards
Andrew

Simon Moore wrote:
> Hi Andrew,
>
> Glad you have taken up the Latex side of things.  A few
suggestions.
>
> We tend to use TT to produce on the fly PDF reports on
our website.   
> I appreciate some people will be using Latex for things
other than 
> PDF.  The things we have noticed as being issues and I
have no idea 
> whether it would actually be something that could be
fixed in TT, 
> hence mailing offlist:
>         1) It is very slow at producing PDFs from TT
(Perhaps this is 
> just Latex, but is there anything that can be done to
speed it up - 
> perhaps there is a better engine for PDFs than latex
and we should 
> build a plugin for that?)
>         2) Latex while in theory you can do anything
with it, is 
> actually very difficult to do some simple things that
look good and 
> can cope with varying input data. e.g. we produce
reports with graphs 
> in, tables and text.  The text can be very variable in
length.  We 
> have a number of tables of data etc etc all this input
is created by 
> TT.  Perhaps there is scope to provide an abstraction
layer for, for 
> instance standard report type layouts where everything
is optimised 
> and all the headache of writing good latex to cope with
all the 
> variable sizes and length is done for you.  For example
PDF report 
> writer http://en
tropy.homelinux.org/axis_not_evil/ which is far from 
> mature but has a nice idea: throw XML data at it and
see it formatted 
> nicely approach - which seems to fit the TT philosophy
of data 
> abstraction.
>         3) Might be nice to have some predefined Text
filters that 
> ensure everything is legal that you input to Latex
>         4) Better graphics support - very annoying when
it crashes 
> with an error because some image is missing (also hard
to tell this is 
> the error without running pdflatex at the command line)
- we have to 
> write loads of code to check things like this to ensure
robustness.  
> As we run the same TT code on windows and Linux we also
have to detect 
> the OS of the server and write in the graphics search
Paths.
>
> Anyway I appreciate these are not necessarily issues
with TT's latex 
> plugin but I think they are things that might be solved
/ worked 
> around at the plugin level.  Perhaps have a low level
plugin and 
> higher level plugins for those of us who want to be
abstracted from 
> the gory details of Latex (or other PDF engines).
>
> Kind Regards
> Simon
>
> At 09:34 01/06/2006, you wrote:
>
>> Having had more of a look through the
Template-Latex code I plan to 
>> make (at least) two releases in the next couple of
weeks.
>>
>> The first release will remove the 'latex',
'pdflatex' and 'dvips' 
>> parameters from the filter interface.  These
parameters allow 
>> absolute program pathnames to be specified in
template code and to my 
>> mind represent a security risk.  Currently the code
builds command 
>> lines that are executed with system(), using either
the paths 
>> configured when the module was installed
(defaulting to 
>> "/usr/bin/latex", etc) or paths
specified as arguments to the FILTER 
>> directive.  The current code does no sanity
checking of the paths, so 
>> there is nothing to stop a malicious template
specifying something 
>> like "FILTER latex(latex => 'rm -rf
/home')".  It should still be 
>> possible though to set up these paths from perl
code as configuration 
>> items when TT2 is invoked.  I hope to make this
first release 
>> sometime next week.
>>
>> Please let me know if you have any issues with this
change.
>>
>> The second release will follow a week or two later
and will add 
>> functionality to run "bibtex" and
"makeindex" on the latex code if 
>> the plugin detects that that is necessary, plus the
plugin will 
>> re-run "latex" (or
"pdflatex") if it detects that there are 
>> unresolved labels.
>> I will provide an option to turn off this
behaviour, so that the 
>> plugin just runs "latex" a specified
number of times: e.g. once, 
>> twice (needed if there are forward references or a
table of contents) 
>> or three times (e.g. if there are forward
references and a table of 
>> contents) irrespective of whether that leaves
unresolved labels.  I 
>> will refine this proposal and post it when I make
the first release.  
>> If you have any comments on this let me know.
>>
>> I also have in mind to add options to explicitly
specify the 
>> temporary directory in which the latex commands are
run and to 
>> suppress the subsequent removal of this directory. 
This would 
>> primarily be for testing and debugging and the
options would not be 
>> exposed as FILTER parameters at the template level.
>>
>> Regards
>> Andrew
>>
>> -- 
>> Andrew Ford,  Director    Pauntley Prints / Ford
& Mason Ltd
>> A.Fordford-mason.co.uk   South Wing Compton
House
>> pauntley-prints.co.uk     Compton Green, Redmarley 
Tel: +44 1531 829900
>> ford-mason.co.uk          Gloucester GL19 3JB      
Fax: +44 1531 829901
>> refcards.com cronolog.org Great Britain         
Mobile: +44 7785 258278
>>
>>
>>
>> _______________________________________________
>> templates mailing list
>> templatestemplate-toolkit.org
>> http://lists.template-toolkit.org/mailman/listinfo/t
emplates
>>
>>
>>
>> -- 
>> No virus found in this incoming message.
>> Checked by AVG Anti-Virus.
>> Version: 7.1.394 / Virus Database: 268.8.0/353 -
Release Date: 
>> 31/05/2006
>
>

-- 
Andrew Ford,  Director    Pauntley Prints / Ford & Mason
Ltd            
A.Fordford-mason.co.uk   South Wing Compton House          
           
pauntley-prints.co.uk     Compton Green, Redmarley  Tel: +44
1531 829900
ford-mason.co.uk          Gloucester GL19 3JB       Fax: +44
1531 829901
refcards.com cronolog.org Great Britain          Mobile: +44
7785 258278



_______________________________________________
templates mailing list
templatestemplate-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
Plans for Template-Latex
user name
2006-06-01 14:56:07
> Simon Moore wrote:
>> Hi Andrew,
>>
>> Glad you have taken up the Latex side of things.  A
few suggestions.
>>
>> We tend to use TT to produce on the fly PDF reports
on our website.   
>> I appreciate some people will be using Latex for
things other than 
>> PDF.  The things we have noticed as being issues
and I have no idea 
>> whether it would actually be something that could
be fixed in TT, 
>> hence mailing offlist:
>>         1) It is very slow at producing PDFs from
TT (Perhaps this is 
>> just Latex, but is there anything that can be done
to speed it up - 
>> perhaps there is a better engine for PDFs than
latex and we should 
>> build a plugin for that?)
>>         2) Latex while in theory you can do
anything with it, is 
>> actually very difficult to do some simple things
that look good and 
>> can cope with varying input data....

I agree.  I wrote a script recently to produce PDFs using
Latex and TT. 
  Although I like some of the ideas behind Latex and I like
the output 
it produces when it works, I find it difficult to get it to
DWIM.  I've 
been thinking about using FOP for my next PDF-generating
project.  I 
think that it would be easier, coming from a web background,
since 
XSL-FO is heavily influenced by HTML/CSS.


>>         3) Might be nice to have some predefined
Text filters that 
>> ensure everything is legal that you input to Latex

I "stole" some code from Pod::LaTeX for the
escape function I use:

sub latex_escape {
   my $paragraph = shift;

   # Replace a \ with $\backslash$
   # This is made more complicated because the dollars will
be escaped
   # by the subsequent replacement. Easiest to add
\backslash
   # now and then add the dollars
   $paragraph =~ s/\\/\\backslash/g;

   # Must be done after escape of \ since this command adds
latex escapes
   # Replace characters that can be escaped
   $paragraph =~ s/([\$\#&%_{}])/\\$1/g;

   # Replace ^ characters with \^{} so that $^F works okay
   $paragraph =~ s/(\^)/\\$1\{\}/g;

   # Replace tilde (~) with \texttt{\~{}}
   $paragraph =~ s/~/\\texttt\{\\~\{\}\}/g;

   # Now add the dollars around each \backslash
   $paragraph =~ s/(\\backslash)/\$$1\$/g;
   return $paragraph;
}



_______________________________________________
templates mailing list
templatestemplate-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )