LuaLaTeX 无法使用 Cyrrilic 名称文件执行 plantuml

LuaLaTeX 无法使用 Cyrrilic 名称文件执行 plantuml

它源自我之前的问题:plantuml 的 \DeclareGraphicsRule 不适用于 LuaLaTeX

我有这个MWE:

\documentclass{article}
\usepackage{graphicx}

\DeclareGraphicsExtensions{.pdf,.png,.jpg,.tif,.svg,.puml}

\DeclareGraphicsRule{.tif}{png}{.png}%
{%
    `convert #1 `dirname #1`/`basename #1 .tif`-tif-converted-to.png %
}
\DeclareGraphicsRule{.svg}{pdf}{.pdf}%
{%
    `inkscape -D -z --file=#1 --export-pdf=`dirname #1`/`basename #1 .svg`-svg-converted-to.pdf %
}
\DeclareGraphicsRule{.puml}{png}{.png}%
{%
    `pumlconvert #1 %
}

\begin{document}

    \includegraphics{пример_свг}    %svg example
    \includegraphics{пример_тифф}   %tiff example
    \includegraphics{puml_example}

    \includegraphics{диаграмма}     %puml example in Russian

\end{document}

pumlconvertbash是一个处理文件的小脚本puml

#!/bin/bash

PUMLFILE=$1
fname="${PUMLFILE%.*}"
PUMLCONVERTED="$fname-puml-converted-to.png"
create_png_and_rename () {
  plantuml -charset UTF-8 $PUMLFILE
  mv "$fname.png" "$PUMLCONVERTED"
}
if [ -f "$PUMLCONVERTED" ]
then
echo "$PUMLCONVERTED found."
    if [ "$PUMLFILE" -nt "$PUMLCONVERTED" ]
    then
    echo "$PUMLFILE is newer than $PUMLCONVERTED."
    create_png_and_rename
    fi
else
create_png_and_rename
echo "$PUMLCONVERTED not found."
fi

一切都完美适用于罗马文件名。Inkscapeconvert适用于西里尔文件名。但plantuml如果文件名中有非罗马字母,则无法执行。如果从终端执行,它运行良好,但从终端执行则LuaLaTeX不行。

可能存在什么问题?为什么其他应用程序可以处理来自 的非罗马文件名LuaLaTeX,而plantuml却不能?

答案1

我已添加此字符串来pumlconvert手动设置语言环境:

LC_CTYPE=en_US.utf8

现在一切都如我所愿了。

相关内容