El paquete pdfx falla con veraPDF y la verificación previa no admite caracteres especiales (no se utiliza UTF-8) y

El paquete pdfx falla con veraPDF y la verificación previa no admite caracteres especiales (no se utiliza UTF-8) y

Terminé (después de mucho trabajo) mi doctorado. tesis en LaTeX. Sin embargo, tuve un gran problema después de leer que tengo que enviar el PDF como archivo PDF/A. En primer lugar, intenté convertirlo utilizando el software Acrobat Professional (el departamento de TI lo hizo), pero fallamos. Así que di un paso atrás e intenté crear el archivo PDF/A mediante LaTeX y encontré el paquete pdfx. Mientras uso este paquete, no puedo usarlo usepackage[utf8]{inputenc}porque es una dependencia del pdfxpaquete. Sin embargo, después de cambiar algunos comandos propios y otros operadores matemáticos como \bullet, que ya están en uso o ya no existen, tuve el problema de que la diéresis ä ü ö ßya no funciona.

ActualizarEste problema estaba relacionado con una versión no actualizada de pdfx package. Después de la actualización, \usepackage[utf8]{inputenc}se puede utilizar y todo funciona bien.


El segundo problema es que el pdf generado no es compatible con PDF/A. preflight and veraPDFdio un montón de errores que no puedo manejar. Algunas ideas.


Espero que alguien pueda darme algún consejo.

Gracias de antemano Tobi

Respuesta1

Actualización: Parche para pdfx agregado en la parte inferior (23.02.2018)

Hoy investigué un poco sobre el tema de la generación de archivos PDF/A con LaTeX y pdfx packagedescubrí la solución. Actualmente presentaré dos versiones y la verificación de validación mediante la veraPDFaplicación. Bien, comencemos. La forma más sencilla es utilizar Acrobat Professional (si está disponible).


Usando Acrobat Profesional

  • Compile su archivo LaTeX tal como está en un PDF
  • Abra el PDF en la computadora con el software Adobe instalado
  • Imprima el archivo usando la Adobe PDFimpresora y elija la opción PDF/A
  • Consultar con veraPDFo preflight-> válido
  • Hecho y feliz

En mi caso no pude convertirlo directamente porque me salieron algunos errores. No tengo idea de por qué, pero la única forma posible era la mencionada anteriormente.


Usando pdfxel paquete en LaTeX

  • Asegúrese de tener el último pdfxpaquete disponible. Para ello, puede usar simplemente la kpsewhere pdfx.styfunción en Linux para obtener la ruta al archivo y verificar la versión (ábralo con un editor). En mi caso tenía un paquete antiguo y tuve que actualizarlo (https://ctan.org/pkg/pdfx?lang=en)
  • Toda la información se proporciona en la documentación, así como otras ideas como how to add the meta keywords.

Por ejemplo, agregué un nuevo archivo en la primera posición usando la inputfunción (atención: antes de la definición de clase de documento).

\input{Pre/Pre_MetaData}
\documentclass[...]
\input{Pre/Pre_Packages}
\input{Pre/Pre_Settings}

mientras que en el Pre_MetaDataarchivo se encontrará este tipo de código (que puede ampliarse según la documentación del pdfxpaquete:

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 

\begin{filecontents*}{\jobname.xmpdata}
 \Title{Your Title of the work}
 \Author{Tobias Holzmann\sep And Others}
 \Keywords{Your\sep Keywords\sep}
 \Publisher{...}
 \Copyright{...}
\end{filecontents*}

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % 

Si uno está usando el pdfxpaquete al final del trabajo (me refiero a que escribió un libro o una tesis y se da cuenta de que tiene que crear un archivo PDF/A), puede suceder que tenga que crear una solución alternativa con los comandos generados por usted mismo. Así que recomiendo a todos los que saben directamente que tiene que ser un archivo PDF/A, que comiencen a incluir directamente el archivo pdfx package. Además, como se indica en la documentación, es una buena idea cargar ese paquete en la primera posición. Después de eso, puede volver a compilar el documento y se genera el PDF/A pdf. Resumiendo:

  • Asegúrese de tener pdfxinstalado el último paquete
  • Incluya los metadatos justo al principio (antes de que comience la clase de documento)
  • Incluya el pdfxpaquete en primer lugar (lea también la lista de dependencias: por ejemplo, hyperrefel usuario ya no tiene que incluir el paquete porque pdfxlo está cargando...)
  • Agregue el esquema de color a su proyecto LaTeX (encontrará uno en los archivos fuente o aquíhttp://www.color.org/iccprofile.xalter)
  • Eliminar problemas de comandos propios definidos (si es que alguna vez)
  • Compílalo con pdflatex (yo lo hice de esa manera)
  • Compruébelo veraPDFy probablemente verá un montón de errores que se resumen y resuelven a continuación.
  • Si todo está bien ya está, felicidades :)

Errores con veraPDFypdfx

Me di cuenta de que mientras usaba el primer método ( Acrobat Pro), preflighty veraPDFme dio un resultado PDF/A válido, mientras usaba LaTeX y el pdfxpaquete, fallé muchas comprobaciones. Sin embargo, esto me dijo que hay algunos problemas con el pdfxpaquete o en general con el PDF escrito por LaTeX.

Recibí una variedad de mensajes de error durante la verificación del archivo PDF/A generado por LaTeX usando veraPDFy preflight. Al principio tenía más de medio millón de cheques fallidos ~ 543.000. La mayoría de los errores estaban relacionados con una combinación de colores no incluida (punto 4 de la lista anterior). Esto se puede resolver fácilmente añadiendo la combinación de colores y listo.

Otro grupo de errores fueron difíciles de descubrir y estaban relacionados con cifras de transparencia y otras características que (ahora lo sé) no son compatibles con la versión pdf 1.4. En mi proyecto LaTeX, hay más de 50 archivos eps que se convierten a pdf mediante el epstopdfpaquete. Aquí el problema comienza pdfxbasándose en un problema introducido por ese paquete. Supongo que es un error y ya envié un mensaje a los creadores.

  • En cualquier caso, el pdfxpaquete establecerá la versión pdf que creemos en la versión 1.4, que es correcta para el estándar PDF/A-1 publicado en 2005; cf. ISO 190005-1 (https://en.wikipedia.org/wiki/PDF/A).
  • Sin embargo, cualquier configuración/opción que se establezca para el pdfxpaquete conducirá a una versión pdf 1.4. Incluso si se realiza una especificación de PDF/A-2. De hecho, esto debería dar una versión pdf 1.7.
  • Y aquí comienza el problema porque epstopdfgenera archivos PDF que son de la versión 1.5, mientras que el documento LaTeX estará en la versión 1.4. Esto no es compatible y los archivos PDF gráficos de la versión 1.5 tienen características que no son compatibles con la versión 1.4.
  • Esta discrepancia en las versiones genera muchos errores veraPDFcon la opacidad y transparencia de las figuras, especialmente con el cavalor, etc. (https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Part-1-rules)

Por cierto, puedes averiguar la versión de un pdf en Linux usando el pdfinfo myPDF.pdfcomando.

Para solucionar el problema, hay que piratear el pdfxpaquete para configurar la versión correcta para el pdf. Para hacerlo, uno tiene que encontrar la ruta al pdfx.styarchivo usando kpsewhere pdfx.stynuevamente y abrirlo usando un editor que le guste (sudo it):

sudo vim /usr/share/texlive/texmf-dist/tex/latex/pdfx/pdfx.sty

Busque ese comentario: línea 750 (en la versión v1.5.84)

%% Hyperref options for PDF/A and PDF/E

Y agregue, después de hyperreftodo, la siguiente línea mientras cambia la versión según la versión que le gustaría tener para su pdf.

\thepdfminorversion=6  % Corresponds to version 1.6

Para dar una mejor descripción de la posición en mi caso, lo agregué a la línea 815:

\ifpdfx@x
 \@ifpackageloaded{hyperref}{%
  \ifxetex
   \expandafter\hypersetup\expandafter{\pdfx@pdfX@opts@xetex}
  \else\ifluatex
   \expandafter\hypersetup\expandafter{\pdfx@pdfX@opts@luatex}
  \else
   \expandafter\hypersetup\expandafter{\pdfx@pdfX@opts@pdftex}
  \fi\fi
 }{%
  \ifxetex
   \expandafter\RequirePackage\expandafter[\pdfx@pdfX@opts@xetex]{hyperref}
  \else\ifluatex
   \expandafter\RequirePackage\expandafter[\pdfx@pdfX@opts@luatex]{hyperref}
  \else
   \expandafter\RequirePackage\expandafter[\pdfx@pdfX@opts@pdftex]{hyperref}
  \fi\fi
 }%
\else
 \ifpdfx@e
  \@ifpackageloaded{hyperref}{%
   \ifxetex
    \expandafter\hypersetup\expandafter{\pdfx@pdfAE@opts@xetex}
   \else\ifluatex
    \expandafter\hypersetup\expandafter{\pdfx@pdfAE@opts@luatex}
   \else
    \expandafter\hypersetup\expandafter{\pdfx@pdfAE@opts@pdftex}
   \fi\fi
  }{%
   \ifxetex
    \expandafter\RequirePackage\expandafter[\pdfx@pdfAE@opts@xetex]{hyperref}
   \else\ifluatex
    \expandafter\RequirePackage\expandafter[\pdfx@pdfAE@opts@luatex]{hyperref}
   \else
    \expandafter\RequirePackage\expandafter[\pdfx@pdfAE@opts@pdftex]{hyperref}
   \fi\fi
  }%
 \else % generating PDF/A or ...
  \@ifpackageloaded{hyperref}{%
   \ifxetex
    \expandafter\hypersetup\expandafter{\pdfx@pdfAE@opts@xetex}%
   \else\ifluatex
    \expandafter\hypersetup\expandafter{\pdfx@pdfAE@opts@luatex}%
   \else
    \expandafter\hypersetup\expandafter{\pdfx@pdfAE@opts@pdftex}%
   \fi\fi
  }{%
   \ifxetex
    \expandafter\RequirePackage\expandafter[\pdfx@pdfAE@opts@xetex]{hyperref}
   \else\ifluatex
    \expandafter\RequirePackage\expandafter[\pdfx@pdfAE@opts@luatex]{hyperref}
   \else
    \expandafter\RequirePackage\expandafter[\pdfx@pdfAE@opts@pdftex]{hyperref}
   \fi\fi
 }%
\fi\fi
\hypersetup{pdfencoding=auto}%  unicode
\expandafter\ifx\csname KV@Hyp@psdextra\endcsname\relax\else
 \hypersetup{psdextra}
\fi
\thepdfminorversion=6  % Corresponds to version 1.6

Después de eso, guarde el archivo y actualice el entorno TeX: sudo texhash. Hecho. Ahora vuelva a compilar su pdf y obtendrá la versión pdf que necesita (úsela pdfinfopara verificarla). Después de volver a verificar que el pdf usando Acrobat Pro -> preflightel archivo PDF/A era válido y quedé contento. Para la veraPDFherramienta, todavía recibo 1 error relacionado con programas de fuentes Rule 6.3.4-1(https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Part-1-rules#rule-634-1) pero no tengo idea de lo que me dice. Cualquier comentario aquí es bienvenido.

ingrese la descripción de la imagen aquí


pdfxpaquete

Durante mi investigación sobre el pdfxpaquete me di cuenta de que los autores tienen un montón de opciones posibles que no figuran en la documentación. Sin embargo, las opciones no influyen en nada (hasta donde yo sé); por ejemplo, la pdf16opción que debería cambiar la versión pdf a 1.6. Sin embargo, me di cuenta de que el hyperrefcódigo recortado, que se proporciona arriba, es la parte en la que la variable \thepdfminorversionse cambia a 4 en cualquier caso. Se lo escribí a los creadores y espero recibir comentarios; tal vez alguno de ustedes también esté interesado y pueda descubrir más (no estoy muy familiarizado con la sintaxis de LaTeX).


veraPDF

Sólo algunas notas para el veraPDF application.

Se me ocurrió la idea con la versión PDF basada en la salida de preflight-> versión PDF incorrecta y LaTeX que indicaba algunas cosas de las versiones 1.4 y 1.5 con mis imágenes.

Lamento que ahora sea una respuesta larga, pero tal vez alguien pueda obtener información nueva y resolver el problema. Si recibo algún comentario de los creadores, haré un comentario.

Finalmente: pdfxfunciona muy bien ahora para mi doctorado. tesis. Gracias por los comentarios y, por supuesto, si usas, lualatexsupongo que puedes usar la forma en que RobtAll estaba explicando. ¡Gran foro, gran gente! gracias tobi


pdfxparche

Ahora mismo estoy en contacto con Ross Moore y me envió un parche que es más apropiado que mi solución. No está actualizado en el repositorio oficial en este momento, así que lo comparto aquí.

https://Holzmann-cfd.com/forums/pdfx.sty

información relacionada