newcommand 中的换行符和对 hyperref 的引用

newcommand 中的换行符和对 hyperref 的引用

我尝试定义一个文档的名称并在 hyperref 中使用该名称作为文件的属性等,但由于某种原因,pdftitle 和 pdfkeyowrd 选项似乎与换行符冲突,有没有办法解决这个问题,谢谢?

\documentclass[ngerman]{scrartcl}
\usepackage[english,ngerman]{babel}
\usepackage[utf8]{inputenc}

\newcommand{\Titel}{\mbox{Line 1} \\ \mbox{Line 2}}

\usepackage[            pdftex,
                        pdftitle={\Titel},          % -->crash
                        pdfkeywords={\Titel},       % -->crash
                        pdfpagelabels]{hyperref}

\begin{document}
\begin{flushright} 
\Titel
\end{flushright}
\end{document}

答案1

.pdf在文件的文本部分中\\解释正确,但编译过程抱怨 PDFString 中不允许的字符。可以\texorpdfstring{\\}{^^J}使用 TeX - 原始^^J换行符强制执行,至少在关键字部分中将其解释为链接中断。

此外,hyperref手册建议指定pdftitle等。该包已被加载,即使用命令\hypersetup

\documentclass[ngerman]{scrartcl}
\usepackage[english,ngerman]{babel}
\usepackage[utf8]{inputenc}

\newcommand{\Titel}{\mbox{Line 1} \texorpdfstring{\\}{^^J} \mbox{Line 2}}


\usepackage[pdftex,pdfpagelabels]{hyperref}%

\hypersetup{%
  pdftitle={\Titel},
  pdfkeywords={\Titel}
}

\begin{document}
\begin{flushright} 
  \Titel
\end{flushright}
\end{document}

在此处输入图片描述

相关内容