如何在 hyperref 中用逗号替换 pdfkeywords 中的分号

如何在 hyperref 中用逗号替换 pdfkeywords 中的分号

我从外部文件中获取一个以 分隔的关键字列表;。由于hyperref仅适用于以 分隔的关键字,因此,我需要替换分号。

遵循 MWE 适用于文本,但不适用于pdfkeywords来自hyperref

% !TEX TS-program = lualatex
\documentclass[12pt]{scrartcl}
\usepackage{xstring}
\usepackage{hyperref}
\def\fmkeywords{Keyword1; Keyword2; Keyword3}
\hypersetup{                    
  unicode,                      
  pdftitle={My title},
  pdfencoding=auto,             
  pdfkeywords={\StrSubstitute{\fmkeywords}{;}{,}},   
}
\begin{document}
wrong: \fmkeywords

correct: \StrSubstitute{\fmkeywords}{;}{,}
\end{document}

在 PDF 信息中它不会显示关键字:

未列出关键字

但文本中一切都很好:

文本中的关键字很好用

答案1

展开替换并将其存储在同一个变量中(\fmkeywords):

在此处输入图片描述

\documentclass{article}

\usepackage{xstring}
\usepackage{hyperref}

\def\fmkeywords{Keyword1; Keyword2; Keyword3}

\StrSubstitute{\fmkeywords}{;}{,}[\fmkeywords]
\hypersetup{
  unicode,
  pdftitle={My title},
  pdfencoding=auto,
  pdfkeywords={\fmkeywords}
}
\begin{document}

correct: \fmkeywords

correct: \StrSubstitute{\fmkeywords}{;}{,}

\end{document}

相关内容