Windows 路径使用反斜杠,但 LaTeX 文档中的路径需要前斜杠。从 Windows 资源管理器复制文件路径时,它们将包含反斜杠。
我知道我可以使用文本编辑器通过查找和替换将反斜杠更改为正斜杠,这对于每条路径来说都非常痛苦。
所以,我希望
- TeXStudio(Win10)中的一个功能可以解决这个问题
- 或者一个进行替换的 TeX 函数,例如像一个函数
\bs2fs{C:\user\test\path\subdir\file.pdf}
我已经发现这个问题有答案到目前为止,我的情况已缩短为以下内容:
\documentclass[a4paper,10pt]{article}
\usepackage{pdfpages}
\makeatletter
\newcommand{\replaceBS}[2]{{\escapechar=`/
\xdef#2{\expandafter\zap@space\detokenize\expandafter{#1} \@empty}}}
\makeatother
\begin{document}
\replaceBS{C:\user1\test\path\sub dir\sub dir2\file_name with Umlauts äöü.pdf}{\TeXFilename}
\includepdf[pages=-]{\TeXFilename}
\replaceBS{C:\user2\test\path\sub dir\sub dir2\file_name with Accents àèòù.pdf}{\TeXFilename}
\includepdf[pages={1,3,4,2}]{\TeXFilename}
\replaceBS{C:\user3\test\path\sub dir\sub dir3\file_name with Umlauts.pdf}}{\TeXFilename}
\includepdf[pages={4,3,2,1}]{\TeXFilename}
\replaceBS{C:\user4\test\path\sub dir\sub dir4\file_name with Umlauts.pdf}{\TeXFilename}
\includepdf[pages={1,4,3,2}]{\TeXFilename}
\end{document}
这基本上可行,但似乎无法处理路径中的空格。这不能缩短为一个简单的“函数”吗,这样\bs2fs{<path>}
会使文档更具可读性?实际上,一个函数还可以处理空格、变音符号和重音符号?
\includepdf[pages=-] {\bs2fs{C:\user1\test\path\sub dir\sub dir2\file_name with Umlauts äöü.pdf}}
\includepdf[pages={1,3,4,2}]{\bs2fs{C:\user2\test\path\sub dir\sub dir2\file_name with Accents àèòù.pdf}}
\includepdf[pages={4,3,2,1}]{\bs2fs{C:\user3\test\path\sub dir\sub dir3\file_name with Umlauts.pdf}}
\includepdf[pages={1,4,3,2}]{\bs2fs{C:\user4\test\path\sub dir\sub dir4\file_name with Umlauts.pdf}}
答案1
\documentclass[a4paper,10pt]{article}
\usepackage{pdfpages}
\newcommand\windowsincludepdf{\begingroup\catcode`\\=11 \windowsincludepdfaux}
\newcommand\windowsincludepdfaux[2][]{\endgroup\includepdf[#1]{#2}}
\begin{document}
\windowsincludepdf[pages=1-4]{C:\texlive\2022\texmf-dist\doc\latex\pdfpages\pdfpages.pdf}
\windowsincludepdf[pages=1-4]{C:/texlive/2022/texmf-dist/doc/latex\pdfpages\pdfpages.pdf}
\end{document}