[texworks] %!TEX tags
Alain Schremmer
schremmer.alain at gmail.com
Sat Jun 26 16:59:28 CEST 2010
On Jun 26, 2010, at 3:36 AM, Stefan Löffler wrote:
> Hi,
>
> Am 2010-06-24 18:07, schrieb Alain Schremmer:
>> Can TeXworks respond to lines such as the following:
>>
>> %!TEX root =../FOO/\jobname.tex
>>
>> Please note the use of \jobname which would need to have been
>> specially taken care of. And, unfortunately, I am no programmer and
>> thus unable to check the code for myself.
>
> I've posted your feature request and a patch at
> http://code.google.com/p/texworks/issues/detail?id=384.
>
>> I am a completely satisfied user of TeXShop and am inquiring in
>> consideration of the windows users of my stuff which uses this line
>> systematically.
>
> I think this is an intriguing feature, though I'm not sure if most
> "standard" users will know about the meaning of \jobname.
You are right, \jobname is not well known: it appears in passing on
page 754 of Companion 2ed. But it is a most useful command when you
have many similar files made from a template. Here is a typical example:
The way I use the %!TEX root tag is as follows:
First, I have two folders: Contents and Controls
---In the Contents folder I have files named 0.tex, (that's for the
Preface),1.tex, 2.tex etc each of which starts as follows:
%!TEX root = ../Controls/\jobname.tex
\chapter{My Chapter One}
Some text
---In the Controls folder, I have files also named 0.tex, 1.tex,
2.tex etc each of which is just a copy of:
\documentclass[11pt]{book}
\usepackage{xxx}
\begin{document}
\addtocounter{page}{0}%Must be adjusted manually from the WholeBook
\addtocounter{chapter}{\jobbame-1}%This, though, is automatic
\include{../Contents/\jobname}
\end{document}
---Thirdly, I have a folder WholeBook which contains the file MyBook
which is the usual root file:
\documentclass[11pt]{book}
\usepackage{xxx}
\begin{document}
\frontmatter
\include{../Contents/1}
\include{../Contents/2}
etc
\end{document}
Thus, I can compile a chapter either from the Content file or from
the Control file will typeset just the chapter.
In fact, for the sake of symmetry, I am now using the following
variation on the above theme
I have only the two folders: Contents and Controls in which I have
the same files as above but also, in addition:
---In the Contents folder:
The file ALL.tex:
%!TEX root = ../Controls/\jobname.tex
\include{../Contents/0}%Preface to be numbered along with the
contents, etc
\mainmatter
\include{../Contents/1}
\include{../Contents/2}
etc
---In the Controls folder
The file ALL.tex:
\documentclass[11pt]{book}
\usepackage{xxx}
\begin{document}
\frontmatter
\input{../Contents/ALL}
\backmatter
\include{../Text-contents/99}%That's the GNU FDL
\printindex
\end{document}
> Is this astandard TeXShop feature (in which case I think we should
> keep it, for
> the sake of cooperation)?
What is a feature of TeXShop is that, much to the disbelief of many,
it understands \jobname in that first line. Through sheer idiot's
luck, I knew and used that but it took Koch to explain why. I am
quoting:
So I looked at the routine "decodeFile" and discovered this comment:
// added by John A. Nairn
// get full path name for possible relative file name in relFile
// relative is from home
and the last lines of the routine read
// see if \jobname is there
searchString = [self filterBackslashes:@"\\jobname"];
aRange = [saveName rangeOfString:searchString options:NSLiteralSearch];
if(aRange.location == NSNotFound)
return saveName;
// replace \jobname(s)
saveTemp = [NSMutableString stringWithString:saveName];
[saveTemp replaceOccurrencesOfString:searchString withString:jobname
options:NSLiteralSearch
range:NSMakeRange(0,[saveName length])];
return [NSString stringWithString:saveTemp];
> If not, maybe it would be better to change
> this to something a little more intuitive, like "$basename" (keeping
> with the notation for typesetting tools).
Here I am not following you. What is "$basename"? It does not seem to
appear in Companion 2ed.
But it makes me think of an extremely useful command in Didier
Verna's FINK. Here is how I am using it:
\xdef\CheckableItem{\finkdir-\finkbase}
\ifthenelse{\boolean{Quiz?}}%
{%begin Quiz? true
\UseProblem{\CheckableItem-q}%
{%
QUIZtext%
[...]
Doesn't look like much but given that I have 900 such pages ...
I have forgotten now but, at one point, it would have made my life a
lot easier had I been able to use FINK's tools in that first line
tag. Unfortunately, John A. Nairn does not seem to have known about it.
> Maybe we could even do both...
So, yes, I think that it would be a good think to have them both in
TeXWorks. More specifically, right now, the system for developing
and managing ancillaries which is freely downloadable from
http://www.freemathtexts.org/System/Downloads.php
"should" work with editors under Windows but would most not likely
not be able to typeset from the Contents files. With TeXWorks
behaving like TeXShop in that particular, I could write a single set
of instructions under TeXWorks for the users interested in using the
ancillaries of my texts but absolutely not in dealing with LaTeX---
i.e. teachers who are mostly in the Windows world. But also for
authors interested in using the "system" to write ancillaries for
their own text. The system is described in a forthcoming piece in
PracTeX.
Grateful---and hopeful---regards
--schremmer
More information about the texworks
mailing list