I am having trouble running lualatex
from TeXstudio, seemingly due to issues with some locale settings. My environment is a pretty stock Fedora 37 with a local TeXLive installation (using the TeXLive installer instead of distribution repository).
When I try to run the default Latexmk command (e.g. via Tools->Commands->Latexmk) I get the following output:
Process started: latexmk -lualatex -silent -synctex=1 "Document"
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_MEASUREMENT = "de_DE.UTF-8", LC_MONETARY = "de_DE.UTF-8", LANG = "Default.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
Unable to read environment locale: exit now.
Latexmk: fls file doesn't appear to have been made. Latexmk: Couldn't read log file 'Dissertation.log': No such file or directory ---------------------- This message may duplicate earlier message. Latexmk: Failure in processing file 'Dissertation': *LaTeX didn't generate the expected log file 'Dissertation.log' ---------------------- Latexmk: If appropriate, the -f option can be used to get latexmk to try to force complete processing.
Process exited with error(s)
Note that I have changed the configuration of the Latexmk command to use lualatex
(I replaced the -pdf
option by -lualatex
). The issue does not occur when using pdflatex
. I am pretty sure the issue is not related to latexmk
(it just prints more information), but to lualatex
, since a simple call of the builtin LuaLaTeX command (e.g. via Tools->Commands->LuaLaTeX) results in an error as well.
Interestingly, when I configured a custom user command to read the locale settings (just executing locale
), I get the following output:
Process started: locale
LANG=Default.UTF-8
LC_CTYPE="Default.UTF-8"
LC_NUMERIC="Default.UTF-8"
LC_TIME="Default.UTF-8"
LC_COLLATE="Default.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="Default.UTF-8"
LC_PAPER="Default.UTF-8"
LC_NAME="Default.UTF-8"
LC_ADDRESS="Default.UTF-8"
LC_TELEPHONE="Default.UTF-8"
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION="Default.UTF-8"
LC_ALL=
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory /usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory /usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Process exited normally
While all those Default.UTF-8
entries seem to make sense, the error/warning message at the end confuses me. I have no clue, why reading the locale settings implies setting something, and I have also no idea, why only LC_CTYPE
, LC_MESSAGES
and LC_ALL
are affected.
For comparison, this is the output I get when running locale
in a terminal (including the TeXstudio integrated terminal):
LANG=en_US.UTF-8
LC_CTYPE=C.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
My current workaround is to run latexmk
in an external terminal (which works fine), but this is not only cumbersome (switching between windows), but I also don't get the nicely parsed error messages and other convenience features of TeXstudio. I would definitive prefer to build the document via TeXstudio as well.
For anyone interested, I have found a workaround by using a tiny bash script:
The last line calls
make
, which eventually callslatexmk
in my case.Now I have defined some custom build commands:
sh tiny_bash_script.sh all
sh tiny_bash_script.sh all -B
sh tiny_bash_script.sh clean
sh tiny_bash_script.sh wipe
Each command executes the above bash script and passes some arguments to
make
, which then does its thing according to theMakefile
located in the same folder.These commands can be executed using the TeXstudio GUI (via Tools->User). Most importantly, however, such a command can be set as default compilation command in the Build configuration menu (Options->Configure TeXstudio) by setting the "Default Compiler" option to
txs:///user0
, for example.When compiling the project (e.g. by hitting F5), the expected output is printed in the "Messages" tab and the Log is also parsed automatically, so you get a nice overview of all warnings & errors and can click-jump to the according lines in the project - just as it's supposed to work.