I have a quite similar problem as this one:

error with LuaLaTeX, lstinputlisting and an extension-less file

Compilation of the MWE below fails with this error message:

! Package Listings Error: File `coucou(.tex)' not found.

The double-braces hack works fine with the plain listings package. However I'm stuck with the same problem using the tcolorbox package and the listings library:





    listing file = {{coucou}} ,
    listing only ,


Any idea?

  • 2
    On windows the other answer in the old question works for me: \tcbinputlisting { listing file = {testnoext.} , listing only , }. Commented Sep 11, 2017 at 16:58
  • I'm using UNIX (NetBSD) with TeX Live 2017 and this doesn't work. Commented Sep 11, 2017 at 16:59

2 Answers 2


In cygwin texlive which I think should act in a similar way it works to use

    listing file = {{coucou} } ,

with an extra space

  • I would never have thought of such an awful hack. But it just works! Thanks a lot David! Commented Sep 11, 2017 at 18:25
  • 1
    @MarcBaudoin I am sure what you meant to say was "thank you for your insightful and elegant code contribution" :-) Commented Sep 11, 2017 at 18:32
  • Well of course! Even tough I still don't understand how such an elegant and awful hack can work... Commented Sep 11, 2017 at 18:36
  • @MarcBaudoin always in tex if you have an argument that consists of a single {} group the {} is stripped. which is why \fbox{a} is \fbox a it seems listings passes the argument through two levels of macro expansion so needs the braces doubled, but with tcolorbox it is more than 2 and possibly variable number depending on the code path rather than use multiple {{{{coucou}}} and guess the exact number needed I added the space to ensure the argument does not consist just of a brace group, as it is a brace group and a space the group will survive any number of macro expansion steps Commented Sep 11, 2017 at 18:40
  • So that's more than juste a hack, awesome! And thanks again because I was really stuck with this. Commented Sep 11, 2017 at 18:46

With the recent update to the LaTeX kernel, that allows using spaces in file names, the {{file} } hack doesn't work anymore. Is there a solution, other than adding a dummy extension (.whatever) to all my extension-less file names?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .