Ketika menyusun sebuah presentasi beamer dan menggunakan berikut \penulis
perintah
\author{Name \\ \texttt{[email protected]}}
Saya mendapatkan berikut hyperref peringatan di logfile
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\\' on input line 15.
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\new@ifnextchar' on input line 15.
Saya mengerti bahwa ini ada hubungannya dengan hyperref pengaturan PDF metadata, di mana linebreak tidak masuk akal dan harus dihapus.
Mencoba untuk mengatur
\hypersetup{pdfauthor={Name}}
tidak bisa mengubah situasi, sepertinya hyperref masih melihat penulis perintah.
Bagaimana cara saya mendapatkan tampilan yang diinginkan dari nama penulis dengan email dan masih tetap hyperref bahagia?
Ada's tepat, jika verbosely, bernama makro \texorpdfstring
, yang membutuhkan dua argumen dan menggunakan yang pertama untuk (La)TeX dan yang kedua untuk pdf, jadi sesuatu seperti
\author{A.U. Thor\texorpdfstring{\\ [email protected]}{}}
harus bekerja.
Perintah ini tidak didefinisikan dalam dokumen basa-basi, jadi \author{}
harus ditentukan setelah \begin{document}
dalam kasus ini.
(Ya, saya've menghindari masalah yang saya don't tahu dari atas kepala saya jika \url diperbolehkan untuk masuk ke dalam argumen lain...)
Sementara Ulrich's jawaban yang benar dan bekerja, ada yang lebih umum dan transparan cara untuk bekerja di sekitar masalah ini.
The \pdfstringdefDisableCommands perintah
dari hyperref
paket dapat digunakan untuk mendefinisikan perintah-perintah yang biasanya tidak didukung dalam PDF bookmark string.
Di OP, misalnya, menyinggung perintah \\
dan \texttt
, yang dapat didefinisikan ulang untuk melakukan sesuatu yang lain dengan cara ini:
\pdfstringdefDisableCommands{%
\def\\{}%
\def\texttt#1{<#1>}%
}
Maka, penulis dapat ditentukan dalam dokumen tanpa perawatan khusus:
\author{Name \\ \texttt{[email protected]}}
dan akan diformat seperti ini, tapi kemudian dimasukkan sebagai Nama <[email protected]>
dalam PDF info string.
Satu juga dapat menambahkan
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{naturalnames}{hyperref}
sebelum \documentclass{beamer}
untuk menghapus banyak pesan yang dihasilkan akibat nasional (non-inggris) judul bagian, seperti
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\PD1\cyrn' on input line 33.
P. S. Biasanya satu mungkin mendapatkan hingga beberapa ribu dari mereka bahkan untuk presentasi sederhana, dan parsing dari mereka membutuhkan waktu beberapa detik ekstra untuk banyak IDEs bahkan pada kotak modern.