Il giorno sab 4 mar 2023 alle ore 15:40 Jürgen Spitzmüller <
jspi...@gmail.com> ha scritto:

> Am Samstag, dem 04.03.2023 um 15:21 +0100 schrieb Mario D:
> > Nevertheless, it looks like a bit weird, as workaround: it results in
> > a symlink pointing to himself which gives a sort of infinite
> > recursion into itself!
>
> Granted. It's a workaround.
>
> > What I don't like of this hack, apart from this "recursion", is that
> > it creates a symlink in the tmp dir of the file which prevent the lyx
> > root temp dir in /tmp to be removed when lyx is closed.
>
> That's annoying, I agree. However, with the following addition, the
> subdir is removed after the file is being processed, which then also
> makes LyX remove the tmp dir:
>
> \usepackage{atveryend}
> \AtVeryEndDocument{%
>   \ShellEscape{rm -f picts}
> }
>

Great!
I didn't know about this package.


>
> > Moreover, it doesn't save pictures permanently, as it should be in
> > the intended use of external, so that every time you open again the
> > file pictures have to be recompiled from source the first time you
> > compile.
>
> I don't think so. As far as I can see, LyX (LaTeX) sees the pictures in
> the working directory (in picts/) and reads them. New versions should
> only be created if they differ from the old ones. And in that case,
> through the symlink, the updated versions are permanently stored. Or do
> you have evidence that the files are always re-created from scratch?
>

I don't know: I made a second test and it works as you said, while in my
first test pictures were not saved.
I'm not aware to have changed anything: I'm a bit puzzled.
Anyway, it works! And that's what matters!
Moreover: using the package atveryend I can also get rid of the symlink.

So, to sum up.

If the file "test.lyx" is in the working directory $HOME/test/ and I want
all its tikz pictures to be stored in the directory "$HOME/test/picts"
using the "external" library, then it looks like that using the following
template

\usetikzlibrary{external}

\tikzexternalize[prefix=picts/]

\usepackage{shellesc}

\ShellEscape{ln -s $HOME/test/picts picts}

\usepackage{atveryend}

\AtVeryEndDocument{\ShellEscape{rm -f picts}}

\AtVeryEndDocument{\ShellEscape{rm -f $HOME/test/picts/picts}}


is a trick that makes Lyx behave in the intended way.


For what I am concerned, I am happy with this workaround.


Maybe it is worth to be noted somewhere in Lyx documentation, when it
debates the use of shell-escape and/or the external library,


Thank you SO much!!


Cheers.


M
-- 
lyx-devel mailing list
lyx-devel@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-devel

Reply via email to