TransWikia.com

MiKTeX: Error Invalid argument Function: putc

TeX - LaTeX Asked by BaWue on December 20, 2020

After recently having updated my MiKTeX installation I am unable to compile a large document written in german any more.

Luckily I was able to reduce the problematic document to the following 7 line MWE. The german text sequence has been shortened to the shortest possible length for the error still to occur. Therefore the incomplete german word grunds which was grundsätzlich in the original document.

documentclass[parskip=half-]{scrbook}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{lmodern}
begin{document}
Während für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
end{document}

Compiling this MWE by pdflatex MWE-utf8.tex results in the following error message output on the command line:

[]T1/lmr/m/n/10.95 Whrend f
Sorry, but pdflatex did not succeed.

The log file hopefully contains the information to get MiKTeX going again:

  C:UsersxxxxAppDataLocalMiKTeX2.9miktexlogpdflatex.log

The log file contains the following info regarding this compile run:

INFO  pdflatex - this process (10004) started by 'cmd' with command line: pdflatex MWE-utf8.tex
INFO  pdflatex - allowing known shell commands
INFO  pdflatex - enabling input (output) from (to) processes
FATAL pdflatex.core - Invalid argument
FATAL pdflatex.core - Function: putc
FATAL pdflatex.core - Result: 22
FATAL pdflatex.core - Data: <no data>
FATAL pdflatex.core - Source: LibrariesMiKTeXTeXAndFriendsc4pstart.cpp:285
FATAL pdflatex - Invalid argument
FATAL pdflatex - Info: 
FATAL pdflatex - Source: LibrariesMiKTeXTeXAndFriendsc4pstart.cpp
FATAL pdflatex - Line: 285
INFO  pdflatex - this process (10004) finishes with exit code 1
WARN  miktex.core - still open: MWE-utf8.log
WARN  miktex.core - still open: MWE-utf8.aux
WARN  miktex.core - still open: MWE-utf8.tex

Here are my findings to the moment:

I have checked that the document and the MWE are indeed encoded in utf8. German umlaut ä is represented by byte sequence c3 a4, ü by c3 bc and ö by c3 b6.

The problem could be reproduced on two different machines running Win10 x64 and MiKTeX updated to a repository dated 2020-07-12. MiKTeX version info is This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 20.6.29). On the second machine MiKTeX was completely uninstalled and reinstalled from scratch.

The problem does not occur on a machine running Win10 x64 and MiKTeX updated to a repository dated 2020-06-15. MiKTeX version info is This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 2.9.7440 64-bit)

For the error to occur, the problematic german text sequence Während für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds has to be immediately at the beginning of a new paragraph. If any other text is placed at the beginning of a new paragraph in front of the problematic german text makes the error disappear.

Modifying the problematic text in some way makes the error disappear too. For example writing the – of course senseless – text Während fürn die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds removes the error.

Error occurs for the following texts:

Während für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Während fürn ie Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Kährend für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Aäbcded für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Aäbcded güh ijk Lhasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds

No error in the following cases:

Während fürn die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Während für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grund
Lährend für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Während fü die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Während für die Phasenströme aufgrund de Sternschaltung die Nullsystemfreiheit grunds
Aäbcdef für die Phasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds
Aäbcded güh ijk Lmasenströme aufgrund der Sternschaltung die Nullsystemfreiheit grunds

Writing any text behind the offending text sequence still gives the error message. For example completing grunds to grundsätzlich.

Changing the encoding of the document to ISO8859-1 and using usepackage[latin1]{inputenc} stil gives the error. Just for reference: ä is represented by e4, etc.

Replacing documentclass[parskip=half-]{scrbook} by documentclass{article} removes the error message and the modified MWE compiles successfully.

Using documentclass{scrbook} without the [parskip=half-] option also results in a successfull pdflatex run.

But of course I need the scrbook class in conjunction with the [parskip=half-] option for my final document.

Can anybody reproduce this error with the above mentioned MWE on a recently updated MiKTeX installation? Is there any way I can fix this error and get my document compiling again?

One Answer

Update: the bug has been resolved.


This is a passing bug in miktex. It fails if some message should be written to the terminal which contains bytes which are invalid in utf8. In your case it is a overfull box message which contains Umlauts. The log-file (which is 8bit encoded) contains then this, and miktex is trying to write it to the terminal too:

Overfull hbox (4.07864pt too wide) in paragraph at lines 16--17
[]T1/lmr/m/n/10.95 Während für die Phasen-ströme auf-grund der Stern-schal-tun
g die Null-sys-tem-frei-heit grunds 

TeXlive avoids the problem by dropping the Umlauts on the terminal:

Overfull hbox (4.07864pt too wide) in paragraph at lines 16--17
[]T1/lmr/m/n/10.95 Whrend fr die Phasen-strme auf-grund der Stern-schal-tun
g die Null-sys-tem-frei-heit grunds

MiKTeX will do something similar soon too, see https://github.com/MiKTeX/miktex/issues/581. Until then compile with --interaction=batchmode to avoid terminal output.

Correct answer by Ulrike Fischer on December 20, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP