提问于:
浏览数:
7103
——如何链接到本地文件夹中文件?
——xelatex编译
```
\documentclass{article}
\usepackage{xeCJK}%使用xeCJK中文处理宏包
\usepackage[colorlinks,linkcolor=blue]{hyperref}(附加疑问:blue为什么没效果,链接仍显示红色,而非蓝色?)
\begin{document}
%%失败尝试
%尝试1
\href{run:/C:Users/Wang CY/Desktop/2.doc}{如何链接到本地文件夹中文件?}
%%尝试2
% \href{C:/Users/“Wang CY”/Desktop/2.doc}{如何链接到本地文件夹中文件?}
%
%%尝试3
% \href{C:/Users/Wang\ CY/Desktop/2.doc}{如何链接到本地文件夹中文件?}
%
%%尝试4(相对路径)
% \href{./2.doc}{如何链接到本地文件夹中文件?}%将2.doc文件和本tex文件置于同一文件夹中
%%失败尝试
\end{document}
```
4 回答
17
以下代码在我这里没有任何问题,路径中可以有空格,但不能有中文,你再试试:
```
\documentclass{ctexart}
\usepackage{hyperref}
\begin{document}
% 当前路径
\href{run:smartqa.pdf}{test pdf link}
% 绝对路径
\href{run:C:/testlink/test.docx}{test word link}
% 相对路径
\href{run:testfiles/test.txt}{test TXT link}
% 相对路径(空格不影响)
\href{run:test files/test.txt}{test TXT link}
% 相对路径(中文路径名称失败)
\href{run:测试文件/test.txt}{test TXT link}
\end{document}
```
其中`run`应该是要的,否则找不应用程序来打开这个文件。
-
非常感谢! – ChangChun_D 2019-09-17 08:37 回复
-
回复 OsbertWang :恩,觉得还是仅量不用绝对路径,路径和文件名不要有空格和中文为好。 – registor 2019-09-17 07:28 回复
-
难点在于绝对路径中含空格怎么办 – OsbertWang 2019-09-17 00:35 回复
3
我觉得一般用户直接用 `ctexart` 比较好。
接下来,我假设我的文档路径是 `C:\Users\ASUS\Documents\work-latex\test`,在当前路径下,至少有 `main.tex` 文件,文件里添加命令打开 `text.docx` 文件。
下面逐一给出一些情况的最小工作示例 (MWE)
# 相对路径
## 当前目录
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{./test.docx}{本目录相对路径}
\end{document}
```
## 上一级目录
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{../test.docx}{上一级目录相对路径}
\end{document}
```
## 下一级目录
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{./nextpath/test.docx}{下一级目录相对路径}
\end{document}
```
# 绝对路径
## 当前目录
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{C:/Users/ASUS/Documents/work-latex/test/test.docx}{本目录相对路径}
\end{document}
```
## 上一级目录
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{C:/Users/ASUS/Documents/work-latex/test.docx}{上一级目录相对路径}
\end{document}
```
## 下一级目录
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{C:/Users/ASUS/Documents/work-latex/test/nextpath/test.docx}{下一级目录相对路径}
\end{document}
```
# 一些特殊情况
## 路径中包含空格
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{./next path/test.docx}{相对路径含空格}
\end{document}
```
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{file:C:/Users/ASUS/Documents/work-latex/test/next path/test.docx}{绝对路径含空格}
\end{document}
```
## 路径中包含下划线
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{./next_path/test.docx}{相对路径含下划线}
\end{document}
```
```
\documentclass{ctexart}
\usepackage[colorlinks,urlcolor=blue]{hyperref}
\begin{document}
\href{C:/Users/ASUS/Documents/work-latex/test/next_path/test.docx}{绝对路径含下划线}
\end{document}
```
2
<pre><code class="lang-tex">%
%----如何链接到本地文件夹中文件?
%论坛:https://wenda.latexstudio.net/q-1181.html
%
%----xelatex编译
\documentclass{article}
\usepackage{xeCJK}%使用xeCJK中文处理宏包
\usepackage[colorlinks,color=blue]{hyperref}
%(附加疑问:blue为什么没效果,链接仍显示红色,而非蓝色?)
%
% 解答:链接路径前加run:和file:都能链接成功,但
% 使用run时(\href{run:}{}),blue有效果,链接显示蓝色,使用file时(\href{file:}{})时,blue没效果,需要进一步更改宏包选项
\begin{document}
%%失败尝试
%尝试1
%\href{run:/C:Users/Wang CY/Desktop/2.doc}{如何链接到本地文件夹中文件?}
%%尝试2
% \href{"C:/Users/Wang CY/Desktop/2.doc"}{如何链接到本地文件夹中文件?}
%
%%尝试3
% \href{C:/Users/Wang\ CY/Desktop/2.doc}{如何链接到本地文件夹中文件?}
%
%%尝试4(相对路径)
% \href{./2.doc}{如何链接到本地文件夹中文件?}%将2.doc文件和本tex文件置于同一文件夹中
%%失败尝试
%====成功尝试
%绝对路径
\href{file:C:/Users/Wang CY/Desktop/2.doc}{如何链接到本地文件夹中文件?} %(此时链接颜色设置不起作用)
\href{run:C:/Users/Wang CY/Desktop/2.doc}{如何链接到本地文件夹中文件?}
%本地路径
\href{run:2.doc}{如何链接到本地文件夹中文件?}
%相对路径
\href{run:ThesisBeamer/2.doc}{如何链接到本地文件夹中文件?}
%====成功尝试
\end{document}
</code></pre>
0
链接文本颜色的问题,应该用选项 `filecolor`。参考 `texdoc hyperref`, sec. 3.9。
你的回答
请登录后回答
你的回答将会帮助更多人,请务必认真回答问题。