When is the aux file read and written? The 2019 Stack Overflow Developer Survey Results Are...
ELI5: Why do they say that Israel would have been the fourth country to land a spacecraft on the Moon and why do they call it low cost?
Difference between "generating set" and free product?
Python - Fishing Simulator
Did God make two great lights or did He make the great light two?
Format single node in tikzcd
First use of “packing” as in carrying a gun
How to politely respond to generic emails requesting a PhD/job in my lab? Without wasting too much time
What are these Gizmos at Izaña Atmospheric Research Center in Spain?
How can I define good in a religion that claims no moral authority?
Windows 10: How to Lock (not sleep) laptop on lid close?
Can smartphones with the same camera sensor have different image quality?
University's motivation for having tenure-track positions
How is simplicity better than precision and clarity in prose?
What information about me do stores get via my credit card?
Why is Captain Marvel translated as male in Portugal?
Was credit for the black hole image misattributed?
Does Parliament hold absolute power in the UK?
How to stretch delimiters to envolve matrices inside of a kbordermatrix?
Wall plug outlet change
What aspect of planet Earth must be changed to prevent the industrial revolution?
"... to apply for a visa" or "... and applied for a visa"?
How did the audience guess the pentatonic scale in Bobby McFerrin's presentation?
Movie about afterlife I think? Large towers with clothing and food?
How to pronounce 1ターン?
When is the aux file read and written?
The 2019 Stack Overflow Developer Survey Results Are In
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How and when is the “aux” file read and processed?Purpose of AtEndDocument{def}calc-package prevents headheight to changeHow do I run bibtex after using the -output-directory flag with pdflatex, when files are included from subdirectories?Read in number of citations from aux fileExecute command stored in aux fileWrite information on aux file when using include to build documentHow to put value{counter} as value to .aux file?Unclean .aux file causes “file ended while scanning use of @newl@bel” error. Why is it not purged?Evaluate pgfkey before reading and writing to file with newfileHow and when is the “aux” file read and processed?Write and read a renamed (or modified) “.aux” fileDefine global commands in aux file
I'd like to know when the
aux
file is read. I know it happens after the preamble, but does it come before or after theAtBeginDocument
hook?
I'd like to know when the
aux
file (or any other helper file) is actually written. I tried to trace the writing process by placing an undefined command after something should have been written to theaux
file, and runpdflatex
in interactive mode, like so:
documentclass{article}
begin{document}
section{S}label{s}% write something to the aux file
foo% unknown command
end{document}
but to my surprise the
aux
file is still empty whenpdflatex
stops at the error. I guess there is some buffering happening, but how would I resolve the synchronization issue? Say, whenfoo
is command that wants to read from theaux
file?
auxiliary-files
add a comment |
I'd like to know when the
aux
file is read. I know it happens after the preamble, but does it come before or after theAtBeginDocument
hook?
I'd like to know when the
aux
file (or any other helper file) is actually written. I tried to trace the writing process by placing an undefined command after something should have been written to theaux
file, and runpdflatex
in interactive mode, like so:
documentclass{article}
begin{document}
section{S}label{s}% write something to the aux file
foo% unknown command
end{document}
but to my surprise the
aux
file is still empty whenpdflatex
stops at the error. I guess there is some buffering happening, but how would I resolve the synchronization issue? Say, whenfoo
is command that wants to read from theaux
file?
auxiliary-files
add a comment |
I'd like to know when the
aux
file is read. I know it happens after the preamble, but does it come before or after theAtBeginDocument
hook?
I'd like to know when the
aux
file (or any other helper file) is actually written. I tried to trace the writing process by placing an undefined command after something should have been written to theaux
file, and runpdflatex
in interactive mode, like so:
documentclass{article}
begin{document}
section{S}label{s}% write something to the aux file
foo% unknown command
end{document}
but to my surprise the
aux
file is still empty whenpdflatex
stops at the error. I guess there is some buffering happening, but how would I resolve the synchronization issue? Say, whenfoo
is command that wants to read from theaux
file?
auxiliary-files
I'd like to know when the
aux
file is read. I know it happens after the preamble, but does it come before or after theAtBeginDocument
hook?
I'd like to know when the
aux
file (or any other helper file) is actually written. I tried to trace the writing process by placing an undefined command after something should have been written to theaux
file, and runpdflatex
in interactive mode, like so:
documentclass{article}
begin{document}
section{S}label{s}% write something to the aux file
foo% unknown command
end{document}
but to my surprise the
aux
file is still empty whenpdflatex
stops at the error. I guess there is some buffering happening, but how would I resolve the synchronization issue? Say, whenfoo
is command that wants to read from theaux
file?
auxiliary-files
auxiliary-files
asked Jun 25 '13 at 9:27
mafpmafp
14.6k252100
14.6k252100
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The .aux
file is read as part of the document
macro (begin{document}
) but before the AtBeginDocument
hook is used. (You can check this by inserting some 'test code' into the .aux
file and the hook.)
Writing to the .aux
file takes place both 'immediately' and at shipout. The latter is important to get for example the correct page numbers for cross-references, so things like label
take place in a delayed fashion, using the protected@write
'wrapper' around the write
primitive. Thus for example
documentclass{article}
begin{document}
makeatletter
immediatewrite@auxout{noexpandfoo}
protected@write@auxout{}{noexpandbaz}
end{document}
only places foo
in the .aux
file: baz
is never written as there is no page shipout. In your example, shipout occurs after foo
, so you see nothing in the .aux
file at that point although a shipout does occur later.
Note that TeX keeps the .aux
file open until the end of the run, so you cannot be sure that any particular write
will appear in the partial .aux
file during a run. As such, the only safe time to check on what gets written to the file is after the run completes. In particular, badly-terminated jobs may leave the .aux
file in an incomplete state even if the crash occurs after writes 'should' have taken place.
Thanks. But even when I do aclearpage
after thelabel
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in theaux
file. Why?
– mafp
Jun 25 '13 at 10:30
2
Because the file is still open for writing. It is closed only atend{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
2
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would addmakeatletterimmediatecloseout@mainaux
before the error it would appear.
– Ulrike Fischer
Jun 25 '13 at 11:26
1
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
1
@frougon I've kept both arguments asnoexpand
as the idea is to show as little difference as possible
– Joseph Wright♦
9 mins ago
|
show 7 more comments
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f120973%2fwhen-is-the-aux-file-read-and-written%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The .aux
file is read as part of the document
macro (begin{document}
) but before the AtBeginDocument
hook is used. (You can check this by inserting some 'test code' into the .aux
file and the hook.)
Writing to the .aux
file takes place both 'immediately' and at shipout. The latter is important to get for example the correct page numbers for cross-references, so things like label
take place in a delayed fashion, using the protected@write
'wrapper' around the write
primitive. Thus for example
documentclass{article}
begin{document}
makeatletter
immediatewrite@auxout{noexpandfoo}
protected@write@auxout{}{noexpandbaz}
end{document}
only places foo
in the .aux
file: baz
is never written as there is no page shipout. In your example, shipout occurs after foo
, so you see nothing in the .aux
file at that point although a shipout does occur later.
Note that TeX keeps the .aux
file open until the end of the run, so you cannot be sure that any particular write
will appear in the partial .aux
file during a run. As such, the only safe time to check on what gets written to the file is after the run completes. In particular, badly-terminated jobs may leave the .aux
file in an incomplete state even if the crash occurs after writes 'should' have taken place.
Thanks. But even when I do aclearpage
after thelabel
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in theaux
file. Why?
– mafp
Jun 25 '13 at 10:30
2
Because the file is still open for writing. It is closed only atend{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
2
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would addmakeatletterimmediatecloseout@mainaux
before the error it would appear.
– Ulrike Fischer
Jun 25 '13 at 11:26
1
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
1
@frougon I've kept both arguments asnoexpand
as the idea is to show as little difference as possible
– Joseph Wright♦
9 mins ago
|
show 7 more comments
The .aux
file is read as part of the document
macro (begin{document}
) but before the AtBeginDocument
hook is used. (You can check this by inserting some 'test code' into the .aux
file and the hook.)
Writing to the .aux
file takes place both 'immediately' and at shipout. The latter is important to get for example the correct page numbers for cross-references, so things like label
take place in a delayed fashion, using the protected@write
'wrapper' around the write
primitive. Thus for example
documentclass{article}
begin{document}
makeatletter
immediatewrite@auxout{noexpandfoo}
protected@write@auxout{}{noexpandbaz}
end{document}
only places foo
in the .aux
file: baz
is never written as there is no page shipout. In your example, shipout occurs after foo
, so you see nothing in the .aux
file at that point although a shipout does occur later.
Note that TeX keeps the .aux
file open until the end of the run, so you cannot be sure that any particular write
will appear in the partial .aux
file during a run. As such, the only safe time to check on what gets written to the file is after the run completes. In particular, badly-terminated jobs may leave the .aux
file in an incomplete state even if the crash occurs after writes 'should' have taken place.
Thanks. But even when I do aclearpage
after thelabel
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in theaux
file. Why?
– mafp
Jun 25 '13 at 10:30
2
Because the file is still open for writing. It is closed only atend{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
2
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would addmakeatletterimmediatecloseout@mainaux
before the error it would appear.
– Ulrike Fischer
Jun 25 '13 at 11:26
1
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
1
@frougon I've kept both arguments asnoexpand
as the idea is to show as little difference as possible
– Joseph Wright♦
9 mins ago
|
show 7 more comments
The .aux
file is read as part of the document
macro (begin{document}
) but before the AtBeginDocument
hook is used. (You can check this by inserting some 'test code' into the .aux
file and the hook.)
Writing to the .aux
file takes place both 'immediately' and at shipout. The latter is important to get for example the correct page numbers for cross-references, so things like label
take place in a delayed fashion, using the protected@write
'wrapper' around the write
primitive. Thus for example
documentclass{article}
begin{document}
makeatletter
immediatewrite@auxout{noexpandfoo}
protected@write@auxout{}{noexpandbaz}
end{document}
only places foo
in the .aux
file: baz
is never written as there is no page shipout. In your example, shipout occurs after foo
, so you see nothing in the .aux
file at that point although a shipout does occur later.
Note that TeX keeps the .aux
file open until the end of the run, so you cannot be sure that any particular write
will appear in the partial .aux
file during a run. As such, the only safe time to check on what gets written to the file is after the run completes. In particular, badly-terminated jobs may leave the .aux
file in an incomplete state even if the crash occurs after writes 'should' have taken place.
The .aux
file is read as part of the document
macro (begin{document}
) but before the AtBeginDocument
hook is used. (You can check this by inserting some 'test code' into the .aux
file and the hook.)
Writing to the .aux
file takes place both 'immediately' and at shipout. The latter is important to get for example the correct page numbers for cross-references, so things like label
take place in a delayed fashion, using the protected@write
'wrapper' around the write
primitive. Thus for example
documentclass{article}
begin{document}
makeatletter
immediatewrite@auxout{noexpandfoo}
protected@write@auxout{}{noexpandbaz}
end{document}
only places foo
in the .aux
file: baz
is never written as there is no page shipout. In your example, shipout occurs after foo
, so you see nothing in the .aux
file at that point although a shipout does occur later.
Note that TeX keeps the .aux
file open until the end of the run, so you cannot be sure that any particular write
will appear in the partial .aux
file during a run. As such, the only safe time to check on what gets written to the file is after the run completes. In particular, badly-terminated jobs may leave the .aux
file in an incomplete state even if the crash occurs after writes 'should' have taken place.
edited 12 mins ago
answered Jun 25 '13 at 10:07
Joseph Wright♦Joseph Wright
206k23564892
206k23564892
Thanks. But even when I do aclearpage
after thelabel
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in theaux
file. Why?
– mafp
Jun 25 '13 at 10:30
2
Because the file is still open for writing. It is closed only atend{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
2
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would addmakeatletterimmediatecloseout@mainaux
before the error it would appear.
– Ulrike Fischer
Jun 25 '13 at 11:26
1
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
1
@frougon I've kept both arguments asnoexpand
as the idea is to show as little difference as possible
– Joseph Wright♦
9 mins ago
|
show 7 more comments
Thanks. But even when I do aclearpage
after thelabel
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in theaux
file. Why?
– mafp
Jun 25 '13 at 10:30
2
Because the file is still open for writing. It is closed only atend{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
2
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would addmakeatletterimmediatecloseout@mainaux
before the error it would appear.
– Ulrike Fischer
Jun 25 '13 at 11:26
1
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
1
@frougon I've kept both arguments asnoexpand
as the idea is to show as little difference as possible
– Joseph Wright♦
9 mins ago
Thanks. But even when I do a
clearpage
after the label
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in the aux
file. Why?– mafp
Jun 25 '13 at 10:30
Thanks. But even when I do a
clearpage
after the label
, and pdflatex tells me it shipped out the first page before running into the error, I still don't see anything in the aux
file. Why?– mafp
Jun 25 '13 at 10:30
2
2
Because the file is still open for writing. It is closed only at
end{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
Because the file is still open for writing. It is closed only at
end{document}
– Ulrike Fischer
Jun 25 '13 at 10:38
2
2
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would add
makeatletterimmediatecloseout@mainaux
before the error it would appear.– Ulrike Fischer
Jun 25 '13 at 11:26
@Daniel: The problem bothering @mafp has imho nothing to do with asynchronously output. The file is still open and so its content - even if it belongs to previous pages lurks still around in memory and you don't see it if you open the file. If one would add
makeatletterimmediatecloseout@mainaux
before the error it would appear.– Ulrike Fischer
Jun 25 '13 at 11:26
1
1
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
@frougon I'e made the edit: sorry about the missing argument
– Joseph Wright♦
12 mins ago
1
1
@frougon I've kept both arguments as
noexpand
as the idea is to show as little difference as possible– Joseph Wright♦
9 mins ago
@frougon I've kept both arguments as
noexpand
as the idea is to show as little difference as possible– Joseph Wright♦
9 mins ago
|
show 7 more comments
Thanks for contributing an answer to TeX - LaTeX Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f120973%2fwhen-is-the-aux-file-read-and-written%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown