currfile 的问题

currfile 的问题

这是我的 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

相关内容