
Я получаю следующую ошибку при попытке использовать некоторыеpdfa-1bвещи:
(/usr/local/texlive/2015basic/texmf-dist/tex/generic/pgf/frontendlayer/tikz/lib
raries/tikzlibrarytopaths.code.tex))) (./chronosyschr.tex)) (./longtable.sty) (./arydshln.sty) (./xmpincl.sty
(/usr/local/texlive/2015basic/texmf-dist/tex/latex/base/ifthen.sty))
! Missing $ inserted.
<inserted text>
$
l.274 \includexmp{pdfa-1b}
?
Код в моем .tex-файле выглядит следующим образом:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% XMP data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xmpincl}
\providecommand{\xmpProducer}{LaTeX2e}
\providecommand{\xmpOrg}{MyOrg}
\providecommand{\xmpTitle}{\ttitle}
\providecommand{\xmpAuthor}{\tauthor, [email protected]}
\providecommand{\xmpKeywords}{\tkeywordsEn}
\includexmp{pdfa-1b}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% pdfInfo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pdfinfo{%
/Title (\ttitle)
/Author (\tauthor, [email protected])
/Subject (\ttitleEn)
/Keywords (\tkeywordsEn)
/ModDate (\pdfcreationdate)
/Trapped /False
}
Примеры метаданных XMP (илиПредопределенные схемы XMP) не всегда доступны в документации, кроме license.XMP, который работает. Но примеры фактического использования илучшие практикиболее полные метаданные отсутствуют.
И я пытаюсь использовать файл pdfa-1b.xmp из репозитория GitHub: https://github.com/bencomp/pdfx-ext/blob/master/pdfa-1b.xmp (поскольку все, что было предоставлено нашим факультетом, не компилируется; и перенос его содержимого вhttps://www.pdflib.com/knowledge-base/xmp-metadata/free-xmp-validator/повернутыйнедействительно).
И во всей обширной документации отсутствуют базовые рабочие примеры... Или, возможно, вы просто смотрите на неправильную документацию/пакеты pdfa-1b...
Заранее спасибо за любые полезные ответы.
решение1
Пакет xmpincl
работает, например, с файлом xmp, представленным в руководстве (см.https://www.ctan.org/tex-archive/macros/latex/contrib/xmpincl?lang=en, проще всего скопировать xmp из конца файла .dtx).
Однако pdfa-1b.xmp
файл содержит некоторые условные операторы с @
, поэтому вам нужно окружить \includexmp
with \makeatletter
и \makeatother
. В моей системе по какой-то причине \ifx \@empty
конструкция не работала (было выполнено предложение else), я заменил это в файле xmp, \ifx \undefined
который сработал.
МВЭ:
\documentclass{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% XMP data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{xmpincl}
\providecommand{\xmpProducer}{LaTeX2e}
\providecommand{\xmpOrg}{MyOrg}
\providecommand{\xmpTitle}{MyTitle}
\providecommand{\xmpAuthor}{MyAuthor, [email protected]}
\providecommand{\xmpKeywords}{MyKeywords}
\providecommand{\xmpSubject}{MySubject}
\providecommand{\xmpCreatorTool}{\pdftexbanner}
\providecommand{\convDate}{\pdfcreationdate}
\makeatletter
\includexmp{pdfa-1b}
\makeatother
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% pdfInfo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pdfinfo{%
/Title (MyTitle)
/Author (MyAuthor, [email protected])
/Subject (MySubject)
/Keywords (MyKeywords)
/ModDate (\pdfcreationdate)
/Trapped /False
}
\begin{document}
Hello, world!
\end{document}
Фрагмент из измененного pdfa-1b.xmp
:
\ifx\xmpJournalnumber\undefined\relax\else<prism:issn>\xmpJournalnumber</prism:issn>\fi
\ifx\xmpVolume\undefined\relax\else<prism:volume>\xmpVolume</prism:volume>\fi
\ifx\xmpIssue\undefined\relax\else<prism:number>\xmpIssue</prism:number>\fi
Результат: