我有一个相当大的项目,需要同时使用多个包。我在\href
链接中使用“德语变音符号”(äöü) 和其他特殊字符时遇到了问题。
以下是我所拥有的:
\documentclass[12pt,a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{soulutf8}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{eurosym}
\usepackage[hidelinks,pdfencoding=auto]{hyperref}
\geometry{
left=20mm,
top=15mm,
right=20mm,
bottom=15mm
}
\pagenumbering{gobble}
\setlength\parindent{0pt}
\newcommand{\cfbox}[2]{%
\colorlet{currentcolor}{.}%
{\color{#1}%
\fbox{\color{currentcolor}#2}
}%
}
\definecolor{COLOR_CON}{RGB}{255,0,0}
\definecolor{COLOR_DEF}{RGB}{0,255,0}
\begin{document}
\Large
\setul{0.5ex}{0.3ex}
\setulcolor{COLOR_DEF} % mit rot unterstrichen
\section*{§ 1 Beginn der Rechtsfähigkeit}
Die \href{<ref.> Ä ä Ö ö Ü ü § \& € </ref.>}{\ul{Link with Ä ä Ö ö underlined}}.
Die \href{<ref.> ä Ä ö Ö ü Ü § \& € </ref.>}{\cfbox{COLOR_CON}{Link with Ä ä Ö ö and text superscript in a box\textsuperscript{S1}}}.
\end{document}
我收到“TeX 容量超出”错误。或者即使我删除所有字符,只留下一个特殊字符,它也无法正确显示。
我正在使用 pdflatex 进行编译。(Windows 上为 Miktex 2.9)
编辑:
更清楚地说,我的问题是什么。我如何在实际链接(不是 http 链接)和 pdf 文档中使用这些字符。正如我已经指出的那样,如果我删除
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
我的阅读器 (texStudio) 可以正确解释这些字符。但是这些字符在实际 PDF 文档中不可见。
我可以写一些类似的东西\"a
来在输出中获得ä
。有没有办法避免使用替换函数或类似的东西手动替换所有这些?
答案1
的第一个参数中的 URI 参数\href
是错误的。根据 PDF 规范: 是URI
一个 7 位编码的 ASCII 字符串。规范引用RFC 2396,统一资源标识符 (URI):通用语法. URI 中不允许的字符必须转义,请参阅百分比编码。
例如,德语维基百科中 baker 的条目(贝克尔) 的 URL 为:
https://de.wikipedia.org/wiki/B%C3%A4cker
可以通过从某些浏览器(例如 Mozilla Firefox、Google Chrome)的位置栏中复制并粘贴来检索此 URL。
用于编码ä
为 URI 八位字节的编码取决于 URI 和服务器。在这种情况下(通常)是 UTF-8,但也可以不同。
答案2
所以我现在所取得的是我的问题的“半最优”解决方案。
如果有人感兴趣:
首先,我使用 \usepackage[OT1]{fontenc}
现在,因此我可以使用 ä、ö、ü、& 和 ß。但是 § 和 € 在这里不起作用。
这是半最优的,因为编译器没有给我真正的“ä”,而是类似
\保护 \取消hbox...\U@D 一个\egroup
由于我稍后要提取此文本,因此我可以用“ä”替换该字符串。
使用另一个 fontenc,我只会得到每个字符的“?”,在这里我可以用“\U@D a 代码”来区分它们
对于其他字符,我仍然需要一个特殊的解决方案。