Soy nuevo en Latex y actualmente estoy usando Overleaf para administrar mis archivos de Latex. Este es mi problema: tengo varios proyectos en el dorso, cada uno sobre un tema específico. Quiero crear otro proyecto que de alguna manera lea todos los demás proyectos y obtenga el número de páginas de cada proyecto (páginas del archivo PDF asociado). Este nuevo proyecto sirve como contador de páginas, realizando un seguimiento de la duración de todos los demás proyectos. ¿Existe una forma sencilla de hacer esto?
Además, si esto no es factible en el dorso, pero es simple en Texstudio o cualquier editor de texto local, déjemelo ahora.
Respuesta1
En cualquier sistema TeX moderno, suponiendo que esté utilizando el motor pdfTeX (que es el predeterminado en el dorso), puede imprimir el número de páginas de un archivo PDF externo con una macro como esta:
\def\numberofpages#1{\pdfximage{#1}\the\pdflastximagepages}
donde el argumento es la ruta relativa al archivo PDF en cuestión. Hay versiones para otros motores enObtener número de páginas de PDF externo. Esta parte no es específica de Overleaf, puede usarla en su propia distribución local de TeX si lo desea.
Con documentos repartidos en varios proyectos al dorso
El truco en Overleaf (divulgación completa: soy parte del personal de soporte en Overleaf) será acceder al archivo PDF de sus otros proyectos dentro de su proyecto de resumen que cuenta las páginas (llamémoslo proyecto de resumen). Esto se puede hacer incluyendo los archivos de salida de otros proyectos como archivos nuevos en su proyecto de resumen.
No recomendaría hacer esto, porque depende de recordar mantener actualizados todos los archivos externos.Pero si es absolutamente necesario hacer esto, se puede hacer.
Abra el proyecto de resumen, luego elija "Nuevo archivo" -> "De otro proyecto". Luego seleccione el proyecto del que desea contar las páginas. En el menú desplegable "Seleccionar un archivo", haga clic en "seleccionar entre archivos de salida" y luego elija output.pdf
.
Luego elija un nombre adecuado para el archivo PDF de salida dentro del proyecto resumido. (Esto tendrá que ser único si desea contar las páginas de varias páginas externas).
Luego defina la \numberofpages
macro enumerada anteriormente en algún lugar del preámbulo de su proyecto resumido. Digamos que traigo un PDF externo con un nombre de archivo PaperA.pdf
, luego puedo imprimir su número de páginas en cualquier parte del proyecto resumido con
\numberofpages{PaperA.pdf}
La advertencia es que a medida que edite sus otros proyectos y regrese al proyecto de resumen, debe recordar "Actualizar" cada uno de sus archivos PDF externos con el botón que aparecerá en cada archivo PDF externo que agregue al resumen. proyecto:
Debido a la arquitectura de Overleaf, no es posible que estos archivos externos se actualicen automáticamente cuando cambia el otro proyecto. Esto debe hacerse manualmente con el botón "Actualizar".
Con múltiples documentos dentro de un solo proyecto al dorso
Si tiene varios documentos dentro de un solo proyecto al dorso, se puede hacer de manera más automática con alguna combinación de xr
código similar y esta \numberofpages
macro o lastpage
como mencionó John en un comentario. Pero también hay otras ventajas y desventajas con este método en el dorso, dependiendo exactamente de lo que tenga en cada uno de estos otros documentos. Referirse a¿Puedo elegir qué archivo es el archivo tex principal en un proyecto en el dorso?para obtener más información sobre cómo compilar varios documentos dentro de un único proyecto al dorso.
Si termina consolidando varios documentos en un proyecto de Overleaf, este artículo de ayuda muestra cómo usar un latexmkrc
archivo en Overleaf para activar la compilación de otros archivos dentro de un único proyecto de Overleaf:Referencia cruzada con el paquete xr en el dorso. Ese artículo habla de ello en términos del uso del xr
paquete, pero se podría usar el mismo tipo de enfoque para obtener un PDF actualizado en el área de archivos de salida del proyecto, para usarlo con la \numberofpages
macro descrita anteriormente.