我想检查文件是否存在且宏是否存在,如果存在则执行代码 A,如果不存在则执行代码 B。不幸的是,\file_if_exist_p:N
不存在,所以我不能写:
\bool_if:NTF {\file_if_exist_p:x {\myfile} || !(\cs_if_exist_p:N {\myMacro}) } {
code A
} {
code B
}
我确信我可以通过嵌套两个条件\cs_if_exist
并\file_if_exist
重复code A
(或者可能在之前在宏中定义)或在这些嵌套条件中定义宏并在之后检查宏是否存在来进行肮脏的修复……但所有这些看起来真的很肮脏。有没有一种干净的方法来解决这个问题?
我尝试直接输出条件中的真或假布尔值,但没有成功(这会给出一条错误消息):
\documentclass[]{article}
\begin{document}
\ExplSyntaxOn
\def\myfile{myfile.txt}
\cs_generate_variant:Nn \file_if_exist:nTF { xTF }
\bool_if:nTF {
(\file_if_exist:xTF {\myfile} {\c_true_bool} {\c_false_bool})
|| !(\cs_if_exist_p:N {\myMacro}) }
{
The~file~exists
} {
I~need~to~recreate~the~file
}
\ExplSyntaxOff
\end{document}