Saltar al contenido

¿Existe una opción para controlar la orientación de la página de salida (usando knitr->pander->pandoc->docx)?

Luego de observar en diversos repositorios y foros de internet al terminar hemos hallado la respuesta que te enseñamos más adelante.

Solución:

Estoy bastante seguro de que el escritor docx no tiene saltos de sección implementados, también según tengo entendido --reference-docx permite personalizar estilos y no el diseño de la página (pero también podría estar equivocado aquí), esto es de la guía pandocs en --reference-docx:

–referencia-docx=EXPEDIENTE

Utilice el archivo especificado como referencia de estilo al producir un archivo docx. Para obtener los mejores resultados, el docx de referencia debe ser una versión modificada de un archivo docx producido con pandoc. El contenido del docx de referencia se ignora, pero sus hojas de estilo se usan en el nuevo docx. Si no se especifica un docx de referencia en la línea de comando, pandoc buscará un archivo reference.docx en el directorio de datos del usuario (ver –data-dir). Si tampoco se encuentra, se utilizarán valores predeterminados razonables. Pandoc utiliza los siguientes estilos: [paragraph] Normal, Título, Autores, Fecha, Título 1, Título 2, Título 3, Título 4, Título 5, Cita en bloque, Término de definición, Definición, Cuerpo del texto, Título de tabla, Título de imagen; [character] Fuente de párrafo predeterminada, carácter de texto del cuerpo, carácter literal, referencia de nota al pie, enlace.

Cuáles son los estilos que se guardan en el /word/styles.xml componente de la docx documento. El diseño de la página, por otro lado, se guarda en el /word/document.xml componente en el etiqueta, pero el escritor docx de pandoc ignora esta parte por lo que puedo decir.

El escritor de docx crea de forma predeterminada un documento continuo, con elementos como encabezados, párrafos, tablas simples, etc., muy parecido a una salida html.


Opción #1 (no resuelve el problema de orientación de la página):

La única opción de diseño de página que puede definir a través de estilos es el pageBreakBefore que agregará un salto de página antes de un cierto estilo

Opción #2 (parece elegante pero no ha sido probada):

Recientemente el personalizado se ha agregado un escritor que permite un personalizado lua secuencia de comandos, donde debería poder definir cómo se escribirán ciertos bloques de Pandoc en el archivo de salida… lo que significa que potencialmente podría definir saltos de sección y diseño de página para un bloque específico insertando el sectPr etiqueta en el documento. No lo he probado, pero valdría la pena investigar. En pandoc github, puede consultar un archivo de secuencia de comandos lua de muestra para obtener una salida html personalizada.

Sin embargo, esto significa que debe tener instalado lua, aprender el idioma y depende de usted si cree que vale la pena invertir el tiempo.

Optin #3 (un par de clics en Word podrían ser suficientes):

Como probablemente pasará bastante tiempo configurando cómo insertar secciones y cuál sería el tamaño y los márgenes correctos, y descifrando cómo ajustar la tabla a ese diseño… Le recomiendo que use pandoc para escribir su documento. docx, que abres en Word, y haces el diseño a mano:

  • selecciona la mesa quieres en la página horizontal
  • ir Maquetación > Márgenes
    > Seleccione Aplicar a: texto seleccionado
    > escoger Configuración de página > Seleccione Paisaje

Ahora una nueva sección con orientación horizontal debería rodear su mesa.

De todos modos, lo que probablemente también querrá hacer es diseñar un poco la tabla y el título de la tabla (tamaño de fuente, …), para lograr el mejor resultado (todo el estilo del texto ya se puede aplicar con pandoc donde --reference-docx viene bien).

Opción n. ° 4 (en una situación en la que solo puede usar pdf en lugar de docx):

Por lo que pude entender, pandoc hace un buen trabajo con las tablas en md -> docx (alineación, estilo, … ), en tex -> docx a veces tenía algunos problemas. Sin embargo, si su opción permite una pdf La salida de látex será tu mejor amigo. Por ejemplo, su problema se resuelve tan fácilmente como usar

usepackagepdflscape

y agregando esto alrededor de tu mesa

beginlandscape
...
endlandscape

Estas son las opciones que se me ocurrieron hasta ahora.

Siempre recomendaría usar el formato pdf para los informes, ya que puede diseñarlo a su gusto con látex y el diseño se mantendrá como desee.

Sin embargo, también sé que, por varias razones, los documentos de Word siguen siendo la forma principal de revisar manuscritos en muchos campos… así que lo más probable es que opte por la opción 3 sugerida, principalmente porque es una solución perezosa y rápida y porque por lo general, no tiene muchos documentos con toneladas de tablas gigantes con una ubicación y un estilo incómodos.

Buena suerte 😉

Basado en la respuesta de Taleb aquí y algunos officer funciones del paquete, creé una pequeña esencia que uno puede usar así:

---
title: "Example"
author: "Dan Chaltiel"
output: 
  word_document:
    pandoc_args:
     '--lua-filter=page-break.lua'
---

I'm in portrait

endLandscape

I'm in landscape

endPortrait

I'm in portrait again

Con page-breaks.lua siendo el archivo alojado aquí: https://gist.github.com/DanChaltiel/e7505e62341093cfdc489265963b6c8f

Esto está lejos de ser perfecto (por ejemplo, no funcionará sin la última sección de retrato), pero a veces es muy útil.

Reseñas y valoraciones del tutorial

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *