X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/77cb7f5d36d7c6fd56b46fa8daad10ec52474228..be5c588ab7600935efeca46645975f4031f4ba02:/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn diff --git a/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn b/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn index 2e78136c9..3cedd5ae3 100644 --- a/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn +++ b/doc/todo/Move_teximg_latex_preamble_to_config_file.mdwn @@ -8,6 +8,49 @@ The patch also makes some other changes: -- [[Will]] +> I like making this configurable. I do fear that changing what's included +> by default could break some existing uses of teximg? That needs to be +> considered, and either the breakage documented in NEWS, or avoided. Also, +> if mchem is dropped, I think the suggests on texlive-science in +> debian/control should probably go? --[[Joey]] + +>> Yes, changing the defaults could break some existing uses. I think in +>> this case, documenting in NEWS and dropping texlive-science is the +>> best option. In fact, NEWS should probably document the config +>> setting to return things to how they were. +>> +>> The reason I prefer dropping `mchem` rather than keeping it is that `mchem` +>> is non-standard. Now that things are configurable and it is easy to +>> add in if you want it, having only standard packages by default is a +>> good thing. Here is a proposed NEWS entry: + +File: TexImg standard preamble changed + +The [[plugins/teximg]] [[plugin]] now has a configurable LaTeX preamble. +As part of this change the `mchem` LaTeX package has been removed from +the default LaTeX preamble as it wasn't included in many TeX installations. + +The previous behaviour can be restored by adding the following to your ikiwiki setup: + + teximg_prefix => '\documentclass{scrartcl} + \usepackage[version=3]{mhchem} + \usepackage{amsmath} + \usepackage{amsfonts} + \usepackage{amssymb} + \pagestyle{empty} + \begin{document}', + +In addition, the rendering mechanism has been changed to use `dvipng` by default. +If you would like to return to the old rendering mechanism using `dvips` and `convert` +then you should add the following line to your ikiwiki setup: + + teximg_dvipng => 0, + +The LaTeX postfix is unchanged, but is also now configurable using `teximg_postfix`. +Happy TeXing. + +>> I think that about covers it. -- [[Will]] + diff --git a/IkiWiki/Plugin/teximg.pm b/IkiWiki/Plugin/teximg.pm index 369c108..8c3379f 100644 --- a/IkiWiki/Plugin/teximg.pm @@ -28,10 +71,10 @@ The patch also makes some other changes: + +my $default_postfix = '\\end{document}'; + - sub import { #{{{ + sub import { hook(type => "getsetup", id => "teximg", call => \&getsetup); hook(type => "preprocess", id => "teximg", call => \&preprocess); - @@ -21,6 +33,26 @@ sub getsetup () { #{{{ + @@ -21,6 +33,26 @@ sub getsetup () { safe => 1, rebuild => undef, }, @@ -55,10 +98,10 @@ The patch also makes some other changes: + safe => 0, # Not sure how secure LaTeX is... + rebuild => 1, + }, - } #}}} + } - sub preprocess (@) { #{{{ - @@ -105,25 +137,34 @@ sub gen_image ($$$$) { #{{{ + sub preprocess (@) { + @@ -105,25 +137,35 @@ sub gen_image ($$$$) { my $digest = shift; my $imagedir = shift; @@ -86,6 +129,7 @@ The patch also makes some other changes: - $tex .= '\end{document}'; + $tex .= $config{teximg_postfix}; + $tex =~ s!\\documentclass{article}!\\documentclass[${height}pt]{article}!g; + + $tex =~ s!\\documentclass{scrartcl}!\\documentclass[${height}pt]{scrartcl}!g; my $tmp = eval { create_tmp_dir($digest) }; if (! $@ && @@ -100,7 +144,7 @@ The patch also makes some other changes: + # ensure destination directory exists + writefile("$imagedir/$digest.png", $config{destdir}, "") && + (($config{teximg_dvipng} && - + system("dvipng -D 120 -bg Transparent -T tight -o $config{destdir}/$imagedir/$digest.png $tmp/$digest.dvi 2> $tmp/$digest.log") == 0 + + system("dvipng -D 120 -bg Transparent -T tight -o $config{destdir}/$imagedir/$digest.png $tmp/$digest.dvi > $tmp/$digest.log") == 0 + ) || + (!$config{teximg_dvipng} && + system("dvips -E $tmp/$digest.dvi -o $tmp/$digest.ps 2> $tmp/$digest.log") == 0 && @@ -108,3 +152,5 @@ The patch also makes some other changes: return 1; } else { + +[[done]]