处理 Windows 路径中的反斜杠

处理 Windows 路径中的反斜杠

我正在尝试实现与此线程相同的目标:我的 LaTeX 文件如何检测它们是否在 Overleaf 上进行编译?

但是,\homepath一直抛出以下错误:

Undefined control sequence.
C:\Users\USER

我该如何在 Windows 上解决这个问题?我相信需要在以下代码块中进行一些修改,但不知道该怎么做...

\makeatletter
\begingroup\endlinechar=-1\relax
       \everyeof{\noexpand}%
       \edef\x{\endgroup\def\noexpand\homepath{%
         \@@input|"kpsewhich --var-value=HOME" }}\x
\makeatother

答案1

您可以使用包\ifwindows中的ifplatform命令跳过 Windows 上的路径查找,只需分配一些虚拟路径即可。此包需要 shell 转义来检测 Linux 和 Mac 之间的差异,但不需要命令\ifwindows

\documentclass{article}
\usepackage{ifplatform}
\makeatletter
\ifwindows\def\homepath{windows}\else
\begingroup\endlinechar=-1\relax
       \everyeof{\noexpand}%
       \edef\x{\endgroup\def\noexpand\homepath{%
         \@@input|"kpsewhich --var-value=HOME" }}\x
\fi
\makeatother

\def\overleafhome{/home/whatever}% change as appropriate

\begin{document}
Homepath: \homepath

\ifx\homepath\overleafhome
 Overleaf.
\else
 Not Overleaf.
\fi

\end{document}

相关内容