我刚开始使用 TEX 自动生成引人注目的 PDF。因此,目前这是一条良好的道路。
但我现在遇到了一个自己无法解决的问题。所以我决定寻求帮助 :)
任务:
我有一个 tabularx 表,它应该包含一个 href 元素。如果链接很简单,比如http://tex.stackexchange.com。
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
\textbf{some text} & \textbf{some text} & \textbf{some text} \\ \hline
some text* & some text & Für \href{http://tex.stackexchange.com}{link text} \\ \hline
some text & some text & Umsetzung der \href{http://tex.stackexchange.com}{link text} \\ \hline
some text & some text & some text \\ \hline
\textbf{some text} & \textbf{some text} & \\ \hline
\end{tabularx}
\end{table}
这个小例子运行良好并创建了一个美观的文档。
但是我想隐藏在链接文本后面的 URL 要复杂得多。因此上面的小示例被复杂的 URL 更新,文档生成失败...
\begin{table}[H]
\centering
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
\textbf{some text} & \textbf{some text} & \textbf{some text} \\ \hline
some text* & some text & Für \href{http://www.xyz.com/bla/bla/blablabla/issues?set_filter=1&f[]=status_id&op[status_id]=o&v[status_id][]=1&f[]=category_id&op[category_id]=%3D&v[category_id][]=6&f[]=&c[]=tracker&c[]=status&c[]=priority&c[]=subject&c[]=assigned_to&c[]=updated_on&c[]=due_date&c[]=done_ratio}{link text} \\ \hline
some text & some text & Umsetzung der \href{http://www.xyz.com/bla/bla/blablabla/issues?set_filter=1&f[]=status_id&op[status_id]=o&v[status_id][]=1&f[]=category_id&op[category_id]=%3D&v[category_id][]=6&f[]=&c[]=tracker&c[]=status&c[]=priority&c[]=subject&c[]=assigned_to&c[]=updated_on&c[]=due_date&c[]=done_ratio}{link text} \\ \hline
some text & some text & some text \\ \hline
\textbf{some text} & \textbf{some text} & \\ \hline
\end{tabularx}
\end{table}
引发的错误是:
Runaway argument?
{|X|X|X|} \hline \textbf {Phase} & \textbf {Geplant (PT)} & \textbf {\ETC.
! File ended while scanning use of \TX@get@body.
<inserted text>
\par
l.49 \input{document.tex}
我很确定这是由 URL 中的特殊字符引起的。所以我尝试去掉 & 符号和方括号。但这没有用。错误仍然一样。
有人能提示我如何解决这个问题吗?
问候 Kalle
答案1
存在两个问题:
\href
包含%3D
。由于tabularx
将表内容扫描为参数, 的 catcode\href
尚未生效并%
充当注释字符。&
在表格中具有特殊含义。
\href
可以使用\%
and\&
代替%
and来保护这两个字符&
:
\documentclass{article}
\usepackage{tabularx}
\usepackage[colorlinks]{hyperref}
\begin{document}
\centering
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
\textbf{some text} & \textbf{some text} & \textbf{some text} \\ \hline
some text* & some text & Für
\href{http://www.xyz.com/bla/bla/blablabla/issues?set_filter=1\&f[]=status_id\&op[status_id]=o\&v[status_id][]=1\&f[]=category_id\&op[category_id]=\%3D\&v[category_id][]=6\&f[]=\&c[]=tracker\&c[]=status\&c[]=priority\&c[]=subject\&c[]=assigned_to\&c[]=updated_on\&c[]=due_date\&c[]=done_ratio}{link text} \\ \hline
some text & some text & Umsetzung der
\href{http://www.xyz.com/bla/bla/blablabla/issues?set_filter=1\&f[]=status_id\&op[status_id]=o\&v[status_id][]=1\&f[]=category_id\&op[category_id]=\%3D\&v[category_id][]=6\&f[]=\&c[]=tracker\&c[]=status\&c[]=priority\&c[]=subject\&c[]=assigned_to\&c[]=updated_on\&c[]=due_date\&c[]=done_ratio}{link text} \\ \hline
some text & some text & some text \\ \hline
\textbf{some text} & \textbf{some text} & \\ \hline
\end{tabularx}
\end{document}