rstudio / rticles

LaTeX Journal Article Templates for R Markdown
https://pkgs.rstudio.com/rticles/
1.46k stars 516 forks source link

Unexpected behaviours when making tables for copernicus articles #558

Open zavud opened 5 months ago

zavud commented 5 months ago

I want to make a simple table (where booktabs=TRUE) in a copernicus article. When I knit the following copernicus article (using the template provided by the package) to pdf_book

---
title: Template for preparing your manuscript submission to Copernicus journals using RMarkdown
journal: "`r rticles::copernicus_journal_abbreviations(journal_name = 'communication')`"
author:
    # authors can have multiple affiliations, which can also be used to mark deceased coauthors
  - given_name: Daniel
    surname: Nüst
    affiliation: "1, *"
    email: daniel.nuest@uni-muenster.de
    corresponding: true
  - given_name: Josiah
    surname: Carberry
    affiliation: 2
    email: j.carberry@orcid.org
  - given_name: Markus
    surname: Konkol
    affiliation: "1, *"
  - given_name: Nikolaus
    surname: Copernicus
    affiliation: "3, †"
# If you have more than one corresponding author, add them manually using the following structure (note the commas):
# Two authors: Daniel Nüst (daniel.nuest@uni-muenster.de) and Josiah Carberry (j.carberry@orcid.org)
# Three authors or more: Daniel Nüst (daniel.nuest@uni-muenster.de), Josiah Carberry (j.carberry@orcid.org), and Markus Konkol (m.konkol@wwu.de)
# If the following line is uncommented, the "corresponding: true" above are ignored
#correspongdingauthors: Daniel Nüst (daniel.nuest@uni-muenster.de) and Josiah Carberry (j.carberry@orcid.org)
# If authors contributed equally, please mark the respective author names with an asterisk '*' and add a further affiliation: 'These authors contributed equally to this work.'", see template.
affiliation:
  - code: 1
    address: Institute for Geoinformatics, University of Münster, 48149 Münster, Germany
  - code: 2
    address: Psychoceramics, Wesleyan University, Middletown, CT, United States
  - code: 3
    address: University of Ferrara, Ferrara, Italy
  - code: "†"
    address: deceased, 24 May 1543
  - code: "*"
    address: These authors contributed equally to this work.
abstract: |
  The abstract goes here.
  It can also be on _multiple lines_.
bibliography: sample.bib
running:
  title: R Markdown Template for Copernicus
  author: Nüst et al.
competinginterests: |
  The authors declare no competing interests.
# See https://publications.copernicus.org/for_authors/licence_and_copyright.html, normally used for transferring the copyright, if needed. 
# Note: additional copyright statements for affiliated software or data need to be placed in the data availability section. 
copyrightstatement: |
  The author's copyright for this publication is transferred to institution/company. 
### Note: unless stated otherwise, software and data affiliated with the manuscript are assumed to be published under the same licence as the article (currently Creative Commons 4.0)
availability:
  #  use this to add a statement when having only software code available
  #  use this to add a statement when having only data sets available
  #code: |
  #data: |
  codedata: |
    use this to add a statement when having data sets and software code available
  sample: |
    use this section when having geoscientific samples available
videosupplement: |
  use this section when having video supplements available
authorcontribution: |
  Daniel wrote the package. Josiah thought about poterry. Markus filled in for a second author.
disclaimer: |
  We like Copernicus.
acknowledgements: |
  Thanks to the rticles contributors!
appendix: |
  \section{Figures and tables in appendices}
  \subsection{Option 1}
  If you sorted all figures and tables into the sections of the text, please also sort the appendix figures and appendix tables into the respective appendix sections.
  They will be correctly named automatically.
  \subsection{Option 2}
  If you put all figures after the reference list, please insert appendix tables and figures after the normal tables and figures.

  `\appendixfigures` needs to be added in front of appendix figures
  `\appendixtables` needs to be added in front of appendix tables

  Please add `\clearpage` between each table and/or figure. Further guidelines on figures and tables can be found below.
  Regarding figures and tables in appendices, the following two options are possible depending on your general handling of figures and tables in the manuscript environment:
  To rename them correctly to A1, A2, etc., please add the following commands in front of them:
output:
  bookdown::pdf_book:
    base_format: rticles::copernicus_article # for using bookdown features like \@ref()
  rticles::copernicus_article: 
    highlight: NULL
    keep_tex: true
---

\introduction[Introduction]

See Table \@ref(tab:t)

```{r t, echo=FALSE}
df = mtcars[1:3, 1:3]
df$ref = "@Dirac1953888"
knitr::kable(df, booktabs = TRUE)

I get the following error:

tlmgr update --all --self tlmgr: package repository https://mirror.easyname.at/ctan/systems/texlive/tlnet (verified) tlmgr install: package already present: hyperref ! Undefined control sequence. l.142 \toprule

Error: LaTeX failed to compile t.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See t.log for more info. Execution halted


Interestingly, when I do not use `booktabs` (which I need to):
df = mtcars[1:3, 1:3]
df$ref = "@Dirac1953888"
knitr::kable(df, booktabs = FALSE)

I get:

<img width="539" alt="image" src="https://github.com/rstudio/rticles/assets/63021993/4ea8f456-795e-428d-bb20-518a404ff277">

So, rendering of the document seems to work, but there are 2 problems:

- Table referencing does not work
- Citation (@Dirac1953888) which is included in the sample.bib file (provided by the copernicus template) does not properly show up in the "ref" column of the table

xfun::session_info('rticles') R version 4.3.2 (2023-10-31) Platform: aarch64-apple-darwin23.0.0 (64-bit) Running under: macOS Sonoma 14.2.1, RStudio 2023.12.0.369

Locale: en_US.UTF-8 / en_US.UTF-8 / en_US.UTF-8 / C / en_US.UTF-8 / en_US.UTF-8

Package version: base64enc_0.1.3 bslib_0.6.1 cachem_1.0.8 cli_3.6.2 digest_0.6.34 ellipsis_0.3.2
evaluate_0.23 fastmap_1.1.1 fontawesome_0.5.2 fs_1.6.3 glue_1.7.0 graphics_4.3.2
grDevices_4.3.2 highr_0.10 htmltools_0.5.7 jquerylib_0.1.4 jsonlite_1.8.8 knitr_1.45.10
lifecycle_1.0.4 magrittr_2.0.3 memoise_2.0.1 methods_4.3.2 mime_0.12 R6_2.5.1
rappdirs_0.3.3 rlang_1.1.3 rmarkdown_2.25 rticles_0.26.1 sass_0.4.8 stats_4.3.2
stringi_1.8.3 stringr_1.5.1 tinytex_0.49 tools_4.3.2 utils_4.3.2 vctrs_0.6.5
xfun_0.41 yaml_2.3.8



<!--
Please keep the below portion in your issue and delete the portion below. Your issue will be closed if any of the above boxes is not checked. In certain (rare) cases, you may be exempted if you give a brief explanation (e.g., you are only making a suggestion for improvement). Thanks!
-->

---

By filing an issue to this repo, I promise that

- [x] I have fully read the issue guide at https://yihui.name/issue/.
- [x] I have provided the necessary information about my issue.
    - If I'm asking a question, I have already asked it on Stack Overflow or RStudio Community, waited for at least 24 hours, and included a link to my question there.
    - If I'm filing a bug report, I have included a minimal, self-contained, and reproducible example, and have also included `xfun::session_info('rticles')`. I have upgraded all my packages to their latest versions (e.g., R, RStudio, and R packages), and also tried the development version: `remotes::install_github('rstudio/rticles')`.
    - If I have posted the same issue elsewhere, I have also mentioned it in this issue.
- [x] I have learned the Github Markdown syntax, and formatted my issue correctly.

I understand that my issue may be closed if I don't fulfill my promises.
cderv commented 5 months ago

I want to make a simple table (where booktabs=TRUE) in a copernicus article.

If you use booktabs = TRUE, it will require the booktabs CTAN package that is not included in the template. It would require to add \usepackage call. However I am seeing now that including in headers have been deactivated in the template because it is disallowed

This is because Copernicus instruction is to not include any other packages. This is from Copernicus instruction: https://publications.copernicus.org/for_authors/manuscript_preparation.html

The most commonly used packages (\usepackage{}) are integrated in the copernicus.cls. Some other packages often used by the community are defined in template.tex. Please do not insert additional ones in your *.tex file.

@RLumSK or @nuest can confirm this is still the case.

I am seeing we also need to update 7.7 version of the template. We'll do that soon !

cderv commented 5 months ago

Table referencing does not work

Referencing works only with Table using a caption as documented: https://bookdown.org/yihui/bookdown/tables.html#tables

So this should work

See Table \@ref(tab:t)

```{r t, echo=FALSE}
df = mtcars[1:3, 1:3]
df$ref = "@Dirac1953888"
knitr::kable(df, booktabs = FALSE, caption = "My caption")


> Citation (@Dirac1953888) which is included in the sample.bib file (provided by the copernicus template) does not properly show up in the "ref" column of the table

Using Markdown citation for processing won't work unless you use a Markdown table. This because Pandoc which does the document parsing and rendering to the desired format will not parse the citation syntax inside a LaTeX content - so it won't see the citation inside column of a latex table

So you could use a markdown table, but as non included latex package can't be added, and Pandoc is using longtable for its LaTeX table, I don't think this will render. 

Copernicus seems to have some constraints that leads only a limited set of R Markdown  / Pandoc features can be used.
RLumSK commented 5 months ago

Just adding my two cents. I had a similar issue in the past and what I did was using plain LaTeX. Not super elegant but since the Copernicus template renders a PDF, it worked. Example rmarkdown code chunk:

Screenshot 2024-01-24 at 15 51 07