On 19/07/2014 9:51 a.m., Ross Boylan wrote:
My document use the nih class and layout (the latter from Rob Oakes)
and is based on the template provided with the nih for LyX zipfile.
nih.cls and nih.layout are in the same directory as the document.
Windows 7. LyX Version 2.0.6. MikTeX 2.9.
Producing pdfs (via pdflatex) works fine on linux and MacOS, but not
Windows. The problem is that on Windows
c:\MikTeX\tex\latex\nih\nih.cls is used instead of the version in the
document directory. That version includes a bunch of stuff which is
in the document preamble, and so "already defined" errors occur. Some
of it really needs to be in the preamble since it consists of stuff
that vary with each document. The nih.cls in the document directory
does not contain the preamble stuff.
Is there a way to use the nih.cls in the document directory?
The LyX customization manual, section 5.1, has instructions for
installing a local copy. This seems rather involved and will not
reflect changes to the nih.cls in my document directory. I'm probably
not going to change it, but I'd rather not set things up in such a
fragile way.
I tried to use a local layout in the Document Settings | Document
Class, but this didn't change the nih.cls that was used.
Thanks.
Ross Boylan
P.S. I could change the commands in the preamble to \renewcommand, but
then things would stop working under the other OS's, since the command
is not previously defined for them. Also, \newcommands are not the
only thing in the preamble, and I'm not sure if duplicating the other
stuff is OK.
Have you looked at the Settings option for MiKTeX? (I always "Run as
administrator".) Under the Roots tab you can specify your own texmf
tree to search, and the order in the list determines the order in which
files are searched. I'm not sure that just including your document
directory among the Roots will necessarily work. MiKTeX insists on a
certain amount of directory structure (like the main installation).
Alternatively, if you don't want to set up your own texmf tree, it seems
from my installation that MiKTeX searches in the order
C:\Users\<your name>\AppData\Roaming\MiKTeX\2.9
C:\Users\<your name>\AppData\Local\MiKTeX\2.9
<your personal texmf tree>
C:\Program Files (x86)\MiKTeX 2.9
C:\ProgramData\MiKTeX\2.9
so putting your modified nih.cls in the first directory listed above
should do the trick. (I've never done this, but I have got a personal
texmf tree, which is searched before the main MiKTeX installation.) You
will need to Refresh FNDB on the General tab of the Settings dialog for
MiKTeX to find the newly placed file.
Andrew