Este equipo de trabajo ha pasado mucho tiempo investigando soluciones a tu interrogante, te dejamos la respuesta así que nuestro objetivo es servirte de gran apoyo.
Solución:
Que yo sepa, no puede controlar los títulos de figuras / tablas para hacer lo que quiera con rmarkdown / bookdown. Puedes usar el paquete captioner
para lograrlo, con una trampa: funciona bien con rmarkdown
salidas, pero necesitará hacer un posprocesamiento con bookdown
salidas. Aquí está el archivo Rmd que produce el estilo de título deseado:
---
title: Supporting Information
subtitle: "Iron(I) etc"
author: "Some people here"
abstract: "Added the addresses here since there is no abstract in the SI"
output:
word_document:
fig_caption: yes
---
```r, include=F
library(captioner)
tables <- captioner(prefix = "Table S", suffix = ". ", style="b", style_prefix=TRUE, auto_space = FALSE)
figures <- captioner(prefix = "Figure S", suffix = ". ", style="b", style_prefix=TRUE, auto_space = FALSE)
figures("Xray1", "Single-crystal X-ray structure of some text (1)", display=FALSE)
figures("Xray2", "Single-crystal X-ray structure of some text (2)", display=FALSE)
figures("Xray3", "Single-crystal X-ray structure of some text (3)", display=FALSE)
```
## Reaction of etc.
Some text. Some text followed by `r figures("Xray1", display="cite")`, which is the same figure as `r figures("Xray3", display="cite")` but comes after `r figures("Xray2", display="cite")`.
```r Xray, fig.cap=figures("Xray1"), echo=FALSE
plot(cars)
```
```r Xray2, fig.cap=figures("Xray2"), echo=FALSE
plot(cars)
```
```r Xray3, fig.cap=figures("Xray3"), echo=FALSE
plot(cars)
```
Some text etc. followed by `r tables("tab-DipUVvis", display="cite")`:
```r DipUVvis, echo=FALSE
df<-data.frame(Entry=c('AMM 51$3^a$','AMM 52^*a*^'),
Precat=c('[FeBr~2~(dpbz)~2~] (4.00)','[FeBr~2~(dpbz)~2~]
(2.00)'))
knitr::kable(head(df), caption=tables("tab-DipUVvis", "Table Caption"))
```
Sin embargo, si cambia para usar la salida de bookdown :: word_document2, el título de la figura se convierte en "Figura 1: Figura S1. ...". No he encontrado una manera de suprimir "Figura 1:" y tengo que hacer un procesamiento posterior en mi salida para buscar y reemplazar todas las "Figura?:" Con "".
Siguiendo esta guía para configurar Word (.docx
) estilo, podrías hacer fig. y tab. subtítulos en negrita, aunque toda la línea del título puede estar en negrita ... Quiero decir que tenemos una manera de crear un título en .docx
a través de RMarkdown así automáticamente:
Figura S1: Estructura de rayos X monocristalino de un texto (1)
Sin embargo, todavía parece difícil hacer uno como este:
Figura S1: Estructura de rayos X monocristalino de un texto (1)
Me imagino que solo querrás poner en negrita "Figura / Tabla S1", no toda la línea de subtítulos. Sin embargo, si está interesado en formatear .docx
archivo con Rmarkdown, puede consultar el enlace que agregué arriba y ver la siguiente descripción.
1. Tejer el .Rmd
archivo @LmW. nos proporcionó para obtener el primer .docx
producción.
Si tienes algún problema con captioner
paquete, también puede utilizar el siguiente.
---
title: Supporting Information
subtitle: "Iron(I) etc"
author: "Some people here"
abstract: "Added the addresses here since there is no abstract in the SI"
output:
word_document:
fig_caption: yes
---
```r, include=F
library(captioner)
#`captioner` package (Ver. 2.2.3) in my envionment returns the following error messages:
#Error in captioner(prefix = "Table S", suffix = ". ", style = "b", style_prefix = TRUE, :
# unused arguments (suffix = ". ", style = "b", style_prefix = TRUE)
#Error in captioner(prefix = "Figure S", suffix = ". ", style = "b", style_prefix = TRUE, :
# unused arguments (suffix = ". ", style = "b", style_prefix = TRUE)
#tables <- captioner(prefix = "Table S", suffix = ". ", style="b", style_prefix=TRUE, auto_space = FALSE)
#figures <- captioner(prefix = "Figure S", suffix = ". ", style="b", style_prefix=TRUE, auto_space = FALSE)
tables <- captioner(prefix = "Table S", auto_space = FALSE)
figures <- captioner(prefix = "Figure S", auto_space = FALSE)
figures("Xray1", "Single-crystal X-ray structure of some text (1)", display=FALSE)
figures("Xray2", "Single-crystal X-ray structure of some text (2)", display=FALSE)
figures("Xray3", "Single-crystal X-ray structure of some text (3)", display=FALSE)
```
## Reaction of etc.
Some text. Some text followed by `r figures("Xray1", display="cite")`, which is the same figure as `r figures("Xray3", display="cite")` but comes after `r figures("Xray2", display="cite")`.
```r Xray, fig.cap=figures("Xray1"), echo=FALSE
plot(cars)
```
```r Xray2, fig.cap=figures("Xray2"), echo=FALSE
plot(cars)
```
```r Xray3, fig.cap=figures("Xray3"), echo=FALSE
plot(cars)
```
Some text etc. followed by `r tables("tab-DipUVvis", display="cite")`:
```r DipUVvis, echo=FALSE
df<-data.frame(Entry=c('AMM 51$3^a$','AMM 52^*a*^'),
Precat=c('[FeBr~2~(dpbz)~2~] (4.00)','[FeBr~2~(dpbz)~2~]
(2.00)'))
knitr::kable(head(df), caption=tables("tab-DipUVvis", "Table Caption"))
```
2. Establecer Image Caption
y Table Caption
como negrita.
En el primero .docx
expediente,
- Seleccione una leyenda de imagen o una leyenda de tabla;
- Hazlo en negrita
Ctrl
+B
oCommand
+B
); - Haga clic en la esquina inferior derecha de Estilos instalándose Hogar pestaña. O presione
Alt
+Ctrl
+Shift
+S
; - Encontrar
Image Caption
oTable Caption
; - Haga clic en su menú desplegable y haga clic en Actualizar el título para que coincida con la selección.
Si ha realizado los pasos anteriores tanto en la imagen como en el título de la tabla, asegúrese de guardar el .docx
archivar como word-styles-reference-01.docx
en su directorio de trabajo.
3. Tejer el .Rmd
archivo agregando el reference_docx
línea para conseguir tu final .docx
producción.
Agregar reference_docx: word-styles-reference-01.docx
debajo word_document:
línea. Vea la línea 7 en el siguiente ejemplo.
---
title: Supporting Information
subtitle: "Iron(I) etc"
author: "Some people here"
abstract: "Added the addresses here since there is no abstract in the SI"
output:
word_document:
reference_docx: word-styles-reference-01.docx
fig_caption: yes
---
```r, include=F
library(captioner)
#`captioner` package (Ver. 2.2.3) in my envionment returns the following error messages:
#Error in captioner(prefix = "Table S", suffix = ". ", style = "b", style_prefix = TRUE, :
# unused arguments (suffix = ". ", style = "b", style_prefix = TRUE)
#Error in captioner(prefix = "Figure S", suffix = ". ", style = "b", style_prefix = TRUE, :
# unused arguments (suffix = ". ", style = "b", style_prefix = TRUE)
#tables <- captioner(prefix = "Table S", suffix = ". ", style="b", style_prefix=TRUE, auto_space = FALSE)
#figures <- captioner(prefix = "Figure S", suffix = ". ", style="b", style_prefix=TRUE, auto_space = FALSE)
tables <- captioner(prefix = "Table S", auto_space = FALSE)
figures <- captioner(prefix = "Figure S", auto_space = FALSE)
figures("Xray1", "Single-crystal X-ray structure of some text (1)", display=FALSE)
figures("Xray2", "Single-crystal X-ray structure of some text (2)", display=FALSE)
figures("Xray3", "Single-crystal X-ray structure of some text (3)", display=FALSE)
```
## Reaction of etc.
Some text. Some text followed by `r figures("Xray1", display="cite")`, which is the same figure as `r figures("Xray3", display="cite")` but comes after `r figures("Xray2", display="cite")`.
```r Xray, fig.cap=figures("Xray1"), echo=FALSE
plot(cars)
```
```r Xray2, fig.cap=figures("Xray2"), echo=FALSE
plot(cars)
```
```r Xray3, fig.cap=figures("Xray3"), echo=FALSE
plot(cars)
```
Some text etc. followed by `r tables("tab-DipUVvis", display="cite")`:
```r DipUVvis, echo=FALSE
df<-data.frame(Entry=c('AMM 51$3^a$','AMM 52^*a*^'),
Precat=c('[FeBr~2~(dpbz)~2~] (4.00)','[FeBr~2~(dpbz)~2~]
(2.00)'))
knitr::kable(head(df), caption=tables("tab-DipUVvis", "Table Caption"))
```
Si bien no existe un método para diseñar prefijos de subtítulos de figuras a través de bookdown
, es posible hacer esto aplicando un filtro Lua personalizado (que requiere pandoc
2.0 o posterior).
Suponiendo que está comenzando desde
Figura 1 Texto de la leyenda de la figura.
el siguiente filtro debe hacer lo que desee (consulte https://pandoc.org/lua-filters.html#inline para obtener opciones de formato adicionales):
function Image (img)
img.caption[1] = pandoc.Strong(img.caption[1])
img.caption[3] = pandoc.Strong(img.caption[3])
img.caption[4] = pandoc.Strong(". ")
return img
end
(Asumiendo que img.caption[2]
es el espacio en blanco entre Figure
y el número y img.caption[4]
es el espacio en blanco entre el número y el título)
Suponiendo que coloca este filtro en un archivo llamado figure_caption_patch.lua
en el directorio de tu rmarkdown
documento puede aplicarlo agregando un pandoc
argumento en el asunto principal de YAML:
output:
bookdown::word_document2:
pandoc_args: ["--lua-filter", "figure_caption_patch.lua"]
Esto debería producir el estilo de subtítulo deseado.
Figura 1. Texto de la leyenda de la figura.
Nos puedes proteger nuestra publicación dejando un comentario y valorándolo te lo agradecemos.