这是我的 MWE:
\documentclass[ngerman,german,14pt,twoside,openany]{scrbook}
\usepackage[left=2.5cm,right=2.5cm,top=2cm,bottom=2.5cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{currfile}
\begin{document}
\ifcurrfiledir{folder1/folder2/Jungs}{Lieber}{Liebe}
\end{document}
我正在努力解决以下问题:在德语中,你用“Lieber...”这个词和男孩说话,用“Liebe...”这个词和女孩说话(对于我们说英语的朋友来说:这意味着“亲爱的...”。现在我想以一种方式自动执行这些词,如果文档在文件夹“folder1/folder2/Jungs”(Jungs 表示男孩)中,则应插入单词“Lieber”,对于其余的(即女孩)应使用单词“Liebe”。为此,我尝试了 Martin Scharrer 的“currfile”包和上面详述的代码。但这不起作用,因为在这两种情况下 Lualatex 都返回“Liebe”。有人能帮帮我吗?
答案1
如果您想从目录中运行 LuaLaTeX,则无法使用 进行测试\ifcurrfiledir
,因为 是\currfiledir
相对于当前工作目录的。但您可以(始终)使用 进行测试\currfileabspath
,例如:
\documentclass[ngerman,german,fontsize=14pt,openany]{scrbook}
\usepackage[left=2.5cm,right=2.5cm,top=2cm,bottom=2.5cm]{geometry}
\usepackage[main=ngerman]{babel}
\usepackage[abspath]{currfile}
\ExplSyntaxOn
\NewDocumentCommand \JungsMaedelsSonstige { m m m }
{
\str_if_in:NnTF
\currfileabspath
{ /Jungs/ }
{ #1 }
{
\str_if_in:NnTF
\currfileabspath
{ /Maedels/ }
{ #2 }
{ #3 }
}
}
\ExplSyntaxOff
\begin{document}
Dies ist Datei \currfileabspath{} für \JungsMaedelsSonstige{Jungs}{Mädels}{Sonstige}.
\end{document}
注意:由于选项,abspath
您必须使用选项运行 LaTeX -recorder
。如果文件名称如上所述jungsornot.tex
,则您必须运行pdflatex -recorder jungsornot.tex
而不是pdflatex jungsornot.tex
。