<div dir="ltr">Hi Kirill,<div><br></div><div>I do not know exactly why it happens, but I believe you see the problem come and go based on the content of the main file because the error will only happen when there's a verbatim environment at or near a page boundary. Here's a slightly more minimal example:</div><div><br></div><div>\begin{filecontents*}{input.latex}<br>%'<br>\end{filecontents*}<br><br>\documentclass{article}<br>\usepackage{scrlayer-scrpage}<br>\ohead{\input{input.latex}}<br><br>\begin{document}<br>\vspace*{\dimexpr\textheight-\baselineskip\relax}<br>\begin{verbatim}<br>x<br>\end{verbatim}<br>\end{document}<br></div><div><br></div><div>By changing the \vspace* amount, you can see the error go away when the verbatim environment is not at the page boundary. I must admit I do not know exactly why this happens, but it seems like it has to do with the verbatim environment's catcode setup being in effect at the same time the page header is processed.</div><div><br></div><div>Perhaps there is a more elegant solution than this, but a workaround I found was to store the contents of the input.latex file in some macro, and then use that macro inside \ohead rather than \input. This ensures that the headings are created with a "standard" catcode setup rather than the verbatim environment's catcodes. One way to achieve that is using the catchfile package:</div><div><br></div><div>\begin{filecontents*}{input.latex}<br>%'<br>\end{filecontents*}<br><br>\documentclass{article}<br>\usepackage{scrlayer-scrpage,catchfile}<br>\CatchFileDef{\myfile}{input.latex}{}<br>\ohead{\myfile}<br><br>\begin{document}<br>\vspace*{\dimexpr\textheight-\baselineskip\relax}<br>\begin{verbatim}<br>x<br>\end{verbatim}<br>\end{document}<br></div><div><br></div><div>Other folks on the list may have a better technical explanation, or may have a proper fix for this. But maybe this workaround helps you out in the meantime. Best,</div><div><br></div><div>Paul</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 16 Sept 2021 at 20:09, Kirill Elagin <<a href="mailto:kirelagin@gmail.com" target="_blank">kirelagin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
I am facing a completely crazy issue that has to do with \input’ing<br>
documents that contain single-quote characters. I have a document<br>
template that includes a pdf_tex image (from Inkscape) in page<br>
headers, which worked perfectly well, until at some point build<br>
started failing with:<br>
<br>
```<br>
(./input.latex<br>
! Missing $ inserted.<br>
<inserted text><br>
                $<br>
l.3 %% Accompanies image file<br>
```<br>
<br>
It turned out that this was due to single-quote characters occurring<br>
in comments and string literals in the pdf_tex file. I managed to work<br>
the issue around for now by replacing those single-quotes with<br>
something else. What’s crazy about this is that (a) those<br>
single-quotes are completely valid and (b) the error appears and<br>
disappears seemingly randomly depending on the content of the main<br>
file at completely unrelated locations.<br>
<br>
Here is a minimal reproducer: <a href="https://github.com/serokell/latex-quote-repro" rel="noreferrer" target="_blank">https://github.com/serokell/latex-quote-repro</a>.<br>
<br>
The example might look like I lost my mind, but, I promise, I did not.<br>
It consists of two files:<br>
<br>
1. `input.latex` is the one that is being \input’ed, and it is just an<br>
arbitrary file containing a single-quote;<br>
2. `main.latex` has a pretty random structure and is full of letters<br>
“x”, since I obtained it by minimising a real document.<br>
<br>
I realise that, unfortunately, this “minimal” example is not so<br>
minimal, as it depends on KOMA-Script, but that’s as far as I could<br>
get.<br>
<br>
The error is very sensitive to the content of the main file – removing<br>
any (non-essential) line will make the error go away; also I tried to<br>
minimise the actual gibberish content, so, in most cases, removing one<br>
letter “x” will also result in the error going away.<br>
<br>
I don’t understand if this is an issue with KOMA-Script or with LaTeX.<br>
The entire thing, honestly, doesn’t make any sense to me and the only<br>
reasonable explanation that I have is memory corruption. However,<br>
given the complexity of the setup, I guess, it might be something in<br>
KOMA as well, but I can’t prove this, since, due to the extreme<br>
sensitivity of the error, I can’t get rid of KOMA in the reproducer.<br>
<br>
In any case, I will be grateful for any advice and pointers in the<br>
right direction. I guess, the first thing I need to do is figure out<br>
where to report this for further investigation.<br>
<br>
Cheers,<br>
Kirill<br>
<br>
</blockquote></div>