.png)
Estoy trabajando para que mi archivo PDF compilado con XeLaTeX sea compatible con el estándar PDF/X-1a:2001.
cuando usoesta respuestacon TeXLive 2015, el documento se valida completamente (en Acrobat Pro DC). Sin embargo, cuando pruebo la misma solución en mi documento real, que incluye capítulos, índice y otras interactividades, obtengo errores.
Compilé el código a continuación con xelatex -output-driver="xdvipdfmx -V 3" pdfx.tex
:
\documentclass{book}
\usepackage{atbegshi}
\AtBeginShipout{
\special{pdf: put @thispage
<<
/TrimBox [0 0 210.990 162.086]
>>
}
}
\special{pdf: put @thispage
<<
/TrimBox [0 0 210.990 162.086]
>>
}
\special{pdf:docinfo
<<
/GTS_PDFXVersion (PDF/X-1:2001)
/GTS_PDFXConformance (PDF/X-1a:2001)
>>
}
\special{pdf:put @catalog
<<
/PageMode /UseNone
/OutputIntents [
<<
/Info (none)
/Type /OutputIntent
/S /GTS_PDFX
/OutputConditionIdentifier (Custom)
/RegistryName (http://www.color.org/)
>>
]
>>
}%
\usepackage{datetime}
\usepackage{hyperref}
\hypersetup{%
pdftitle={Title},
pdfinfo={
ModDate={D:\pdfdate},
Trapped={False},
},
}
\begin{document}
\chapter{Some chapter}
\chapter{Some chapter}
\chapter{Some chapter}
\chapter{Some chapter}
\end{document}
y la validación de PDF resultante genera el error "El documento contiene acciones" en Acrobat:
Algunos documentos que probé también arrojan el siguiente error: "Anotación dentro del área de la página", que apunta a la tabla de contenido generada con \tableofcontents
el comando y a los enlaces internos generados con \hyperlink
el comando. (Los hipervínculos están en el documento, ya que básicamente se utiliza la misma fuente para generar el documento interactivo y la versión impresa).
Entonces el problema es la interactividad en el documento.
Intenté desactivarlo cambiando
\usepackage{hyperref}
a
\usepackage[draft]{hyperref}
pero esto no solo desactiva la interactividad agregada por hyperref
, sino que también la omite hypersetup
, lo que da como resultado que la fecha de modificación del documento, el título y la clave atrapada no se incluyan en el PDF compilado. Efecto: no hay ningún error con respecto a la interactividad, pero el documento aún no cumple con PDF/X-1a:2001, ya que requiere hypersetup
que se incluyan metadatos.
¿Cómo puedo desactivar completamente toda la interactividad en un documento mientras sigo trabajando hypersetup
?
En teoría, podría redefinir/sobrescribir todos hyperref
los comandos "interactivos", así como todos mis comandos personalizados que usan interactividad (al final del preámbulo, para que se sobrescriban todas las definiciones anteriores):
…
\def \hyperlink#1#2{#2}
\def \href#1#2{#2}
\def \url#1{#1}
\begin{document}
…
pero:
- No estoy seguro de cómo puedo desactivar la interactividad
\pageref
sin perder el número de página del documento. - Este enfoque es muy específico del documento, ya que requiere verificar dónde se agregó exactamente la interactividad y mediante qué comandos.
- Si bien funciona para algunos de los documentos con los que lo probé, no funciona para MWE mencionado anteriormente.
¿Existe alguna forma más sencilla/genérica de desactivar la interactividad globalmente en todo el documento?
Respuesta1
ElNoHyper
ambientepodría hacer lo que está buscando: dentro de su alcance, la mayoría de hyperref
las funciones están deshabilitadas, al redefinir los hyperref
usos de las macros internas para producir enlaces para que no hagan nada. Sin embargo, a diferencia de la draft
opción del paquete, no desactiva la creación de marcadores, la inclusión de información de documentos, etc.
Por lo general, incluiría las partes de su documento en las que desea desactivar los enlaces.
\begin{NoHyper}
...
\end{NoHyper}
En este caso, como desea evitar enlaces en todo el documento, podría ser más fácil simplemente reemplazar
\usepackage{hyperref}
en tu ejemplo por
\usepackage[bookmarks=false]{hyperref}
\NoHyper
para deshabilitar enlaces y marcadores globalmente, sin dejar de poder incluir metadatos en el archivo PDF. Deshabilitar los marcadores es un requisito, ya que su presencia generará el mismo error de validación que se muestra en la pregunta.