tabularx 中名为 href 的 URL 非常长

tabularx 中名为 href 的 URL 非常长

我刚开始使用 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}

结果

相关内容