4

Pertaining exactly to the topic of this question which asks about the various auxiliary files produced by tex and friends, I'd like to ask specifically about the .fof file extension. If the main file is main.tex, a main.fof is created.

I am asking here because I thought that this was a side-effect file that shall be automatically created and therefore ignored this in my VCS. However, after cloning the repository in another computer, luatex complained that this fof file was missing.

What is an fof file, and what information does it convey to the compiler?

  • as always a small test document would make your question more clear. fof isn't a file extension I recognise but a package that you are using could easily create files of that name. – David Carlisle Jul 16 '18 at 13:46
  • @DavidCarlisle Understood. Shall try to prune my code in a debug vcs branch and update the question here. – Krishna Jul 16 '18 at 13:49
  • grep shows /usr/local/texlive/2018/texmf-dist/tex/latex/chkfloat/chkfloat.sty:% process the file .fof – David Carlisle Jul 16 '18 at 13:50
  • Aha. thank you very much. I am indeed using chkfloat to warn me when a float is placed too far from where it occurs in source. – Krishna Jul 16 '18 at 13:52
  • @Troy please note reverted edit – David Carlisle Jul 16 '18 at 18:22
10

If you suspect a package is generating a file name (or any other fixed string) you can search the tex input tree:

grep '\bfof\b' /usr/local/texlive/2018/texmf-dist/tex/latex/*/*.sty

produces

/usr/local/texlive/2018/texmf-dist/tex/latex/chkfloat/chkfloat.sty:% make \@caption write to a file .fof the information about final page, original page and float caption
/usr/local/texlive/2018/texmf-dist/tex/latex/chkfloat/chkfloat.sty:  \addtocontents{fof}{\protect\chkfloat@{\thepage}{\chkfloat@page}{\csname fnum@#1\endcsname: #2}}%
/usr/local/texlive/2018/texmf-dist/tex/latex/chkfloat/chkfloat.sty:% process the file .fof
/usr/local/texlive/2018/texmf-dist/tex/latex/chkfloat/chkfloat.sty:\@starttoc{fof}

which shows that this is float data used by the checking package.

(grep is a unix/linux tool but any search program would work here)

The regex keyword \b is used above to indicate word boundaries, which helps to narrow down the search output considerably to a smaller list that is easily parsable by the human eye.

  • This also suggests that OP should continue ignoring the .fof in the VCS, as chkfloat recreates the file as needed. – Teepeemm Jul 16 '18 at 14:04
  • @DavidCarlisle thank you very much. Much appreciate your help. – Krishna Jul 16 '18 at 14:11
  • @Krishna your edit was rejected but it seemed fine to me so I added it by hand. – David Carlisle Jul 16 '18 at 16:02
  • @DavidCarlisle No issues. It wasn't a major thing anyway. But, thank you for the gesture. – Krishna Jul 17 '18 at 12:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.