From dc3cd5ce2b6f0c771b8791619ea31dc49ffcf6ea Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Wed, 17 Feb 2021 22:57:40 +0100
Subject: [PATCH 01/31] initial changes. Is it my tex that is breaking numeric
 refs?

---
 R/ieee_article.R                              |  5 +-
 .../templates/ieee/resources/template.tex     | 42 ++++++++----
 .../templates/ieee/skeleton/skeleton.Rmd      | 66 +++++++++++++------
 3 files changed, 78 insertions(+), 35 deletions(-)

diff --git a/R/ieee_article.R b/R/ieee_article.R
index 47a8b3c1f..49db4052a 100644
--- a/R/ieee_article.R
+++ b/R/ieee_article.R
@@ -3,8 +3,9 @@
 #' Format for creating submissions to IEEE Transaction journals. Adapted from
 #' \url{http://www.ieee.org/publications_standards/publications/authors/author_templates.html}.
 #'
-#' Presently, only the \code{"conference"} paper mode offered by the
-#' \code{IEEEtran.cls} is supported.
+#' Presently, only the \code{"conference"} paper mode offered by
+#' \code{IEEEtran.cls} is fully supported, with experimental support for the
+#' \code{"journal"} mode.
 #'
 #' @inheritParams rmarkdown::pdf_document
 #' @param draftmode Specify the draft mode to control spacing and whether images
diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index 0fdfdf291..96f259b67 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -50,7 +50,11 @@
 % The testflow support page is at:
 % http://www.michaelshell.org/tex/testflow/
 
-\documentclass[conference,$if(fontsize)$$fontsize$,$endif$$if(draftmode)$$draftmode$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{IEEEtran}
+% *** rticle changes for journal/conference mode.
+% adding journal as an override for conference mode to maintain backwards
+% compatibility. Any future expansions to further modes will have to come up with
+% a cleverer solution, or introduce breaking changes.
+\documentclass[$if(journal)$journal$else$conference$endif$,$if(fontsize)$$fontsize$,$endif$$if(draftmode)$$draftmode$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{IEEEtran}
 % Some Computer Society conferences also require the compsoc mode option,
 % but others use the standard conference format.
 %
@@ -382,9 +386,11 @@
             breaklinks=true}
 \urlstyle{same}  % don't use monospace font for urls
 
-% Pandoc toggle for numbering sections (defaults to be off)
+% Pandoc toggle for numbering sections (defaults to be off in conference, on in journal)
 $if(numbersections)$
 \setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
+$elseif(journal)$
+\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
 $else$
 \setcounter{secnumdepth}{0}
 $endif$
@@ -447,6 +453,24 @@
 % Do not put math or special symbols in the title.
 \title{$title$}
 
+
+% split author affiliations for journal and conference layouts
+$if(journal)$
+
+$if(affiliation.author)$
+\author{
+  $for(affiliation.author)$$if(it.last)$and $endif$$it.name$$if(it.member)$, \IEEEmembership{$it.member$}$endif$$sep$, $endfor$
+  $if(affiliation.thanks)$$for(affiliation.thanks)$\thanks{$affiliation.thanks$}$endfor$$endif$
+}
+$else$
+$~$!!! Only 'affiliation.author' is supported for the journal mode.$~$
+$endif$
+
+\markboth{$journal$$~$, Vol. XX, No. X, XXXXXX 20XX$~$}%
+{$title$}
+
+$else$ % -- end if/journal
+
 % author names and affiliations
 % use a multiple column layout for up to three different
 % affiliations
@@ -563,6 +587,8 @@
 $endif$
 }
 
+$endif$ %% -- end else/journal
+
 % conference papers do not typically use \thanks and this command
 % is locked out in conference mode. If really needed, such as for
 % the acknowledgment of grants, issue a \IEEEoverridecommandlockouts
@@ -586,14 +612,6 @@
 %\IEEEauthorblockA{\IEEEauthorrefmark{4}Tyrell Inc., 123 Replicant Street, Los Angeles, California 90210--4321}}
 
 
-
-
-% use for special paper notices
-%\IEEEspecialpapernotice{(Invited Paper)}
-
-
-
-
 % make the title area
 \maketitle
 
@@ -606,7 +624,7 @@
 % keywords
 $if(keywords)$
 \begin{IEEEkeywords}
-$for(keywords)$$keywords$$sep$; $endfor$
+$for(keywords)$$keywords$$sep$$if(journal)$, $else$; $endif$$endfor$
 \end{IEEEkeywords}
 $endif$
 
@@ -661,5 +679,3 @@
 
 $endfor$
 \end{document}
-
-
diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index fc1067571..ab35cbfe0 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -1,23 +1,40 @@
 ---
-title: Bare Demo of IEEEtran.cls for IEEE Conferences
-affiliation:
+title: Bare Demo of IEEEtran.cls for IEEE Conferences & Journals
+
+## Either conference OR journal should be set;
+# for `conference` the value makes no difference, for `journal` you should set the
+# title of the journal you're publishing with, as it will be used in running headers.
+conference: true
+# journal: IEEE Transactions on Learning Technology ## specify journal for page headers
+
+affiliation:  
   ## use one only of the following
   # author-columnar: true         ## one column per author
-  institution-columnar: true  ## one column per institution (multiple autors eventually)
-  # wide: true                  ## one column wide author/affiliation fields
-
-  #author:   ## A custom author ordering field that breaks institution grouping.
-  #  - name: Eldon Tyrell
-  #    mark: 4
-  #    email: eldon@starfleet-academy.star
-  #  - name: Michael Shell
-  #    mark: 1
-  #  - name: Roy Batty
-  #    mark: 4
-  #    email: roy@replicant.offworld
-  ## Authors cited in institution field are ignored when author field exists
-
-  #author_multiline: ## Put authors in a given order, with multiline possibility. Authors cited in institution are ignored if exists
+  institution-columnar: true      ## one column per institution (multiple autors eventually)
+  # wide: true                    ## one column wide author/affiliation fields
+
+
+  ## A custom author ordering field that breaks institution grouping. 
+  ## This is the only supported format for the journal layout.
+  author:                       
+    - name: Eldon Tyrell
+      member: Member, IEEE       ## only used for journal layout
+      mark: 4                    ## ignored for journal layout
+      email: eldon@starfleet-academy.star
+    - name: Michael Shell
+      member: Fellow, OSA        
+      mark: 1                    
+    - name: Roy Batty
+      member: Life Fellow, IEEE  
+      mark: 4                    
+      email: roy@replicant.offworld
+      last: true                 ## mark the last author so that we can insert `and` 
+                                 ## at the appropriate place.
+                                 
+
+  ## Put authors in a given order, with multiline possibility. 
+  ## Authors cited in institution are ignored if exists
+  #author_multiline: 
   #  - line:         ## Create a new author line
   #    - name: Michael Shell
   #      mark: 1
@@ -32,7 +49,8 @@ affiliation:
   #      mark: 3
   #    - name: Eldon Tyrell
   #      mark: 4
-
+  
+  ## all information listed here is ignored in journal mode
   institution:
     - name: Georgia Institute of Technology
       department: School of Electrical and Computer Engineering
@@ -61,6 +79,13 @@ affiliation:
           email: eldon@starfleet-academy.star
         - name: Roy Batty
           email: roy@replicant.offworld
+
+  # ## used for author affiliations and other acknowledgements in journal mode
+  thanks:
+    - "E. Tyrell and R. Batty are with Starfleet Academy."
+    - "M. Shell was with the Department of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA, 30332 USA e-mail: (see http://www.michaelshell.org/contact.html)."
+    - "Manuscript received February 17, 2021; revised June 6, 2021."
+
 keywords: ["keyword 1", "keyword 2"]
 abstract: |
   The abstract goes here.
@@ -68,13 +93,14 @@ abstract: |
 
 # use some specific Tex packages if needed. 
 # with_ifpdf: true
-# with_cite: true
+# with_cite: true ## note that since pandoc doesn't use \cite, this does nothing.
 # amsmath need to be true to use with bookdown for referencing equations.
 with_amsmath: true
 # with_algorithmic: true
 # with_array: true
 # with_dblfloatfix: true
 
+natbib: true
 bibliography: mybibfile.bib
 output: rticles::ieee_article
 #citation_sorting: none   ## used as sorting option of the biblatex package (if selected)
@@ -83,7 +109,7 @@ output: rticles::ieee_article
 Introduction
 =============
 <!-- no \IEEEPARstart -->
-This demo file is intended to serve as a ``starter file''
+\IEEEPARstart{T}{his} demo file is intended to serve as a ``starter file''
 for IEEE conference papers produced under \LaTeX\ using
 IEEEtran.cls version 1.8b and later.
 <!-- You must have at least 2 lines in the paragraph with the drop letter

From f6f6249f9089fffdf9ba73a05584190f8c2573d6 Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Mon, 22 Feb 2021 09:28:25 +0100
Subject: [PATCH 02/31] add IEEE abbreviations bib

---
 .../templates/ieee/skeleton/IEEEabrv.bib      | 489 ++++++++++++++++++
 1 file changed, 489 insertions(+)
 create mode 100644 inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib

diff --git a/inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib b/inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib
new file mode 100644
index 000000000..bcaccfc14
--- /dev/null
+++ b/inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib
@@ -0,0 +1,489 @@
+
+IEEEabrv.bib
+V1.14 (2015/08/26)
+Copyright (c) 2002-2015 by Michael Shell
+See: http://www.michaelshell.org/
+for current contact information.
+
+BibTeX bibliography string definitions of the ABBREVIATED titles of
+IEEE journals and magazines and online publications.
+
+This file is designed for bibliography styles that require 
+abbreviated titles and is not for use in bibliographies that
+require full-length titles.
+
+Support sites:
+http://www.michaelshell.org/tex/ieeetran/
+http://www.ctan.org/pkg/ieeetran
+and/or
+http://www.ieee.org/
+
+Special thanks to Laura Hyslop, Ken Rawson, Kevin Lisankie and
+Mona Mittra of the IEEE for their help in obtaining the information needed
+to compile this file. Also, Volker Kuhlmann, Moritz Borgmann,
+Yannick Berker, Nicol�s Barabino, Chuanren Wu and Santiago Cogollos Borras
+kindly provided some corrections and additions.
+
+
+*************************************************************************
+Legal Notice:
+This code is offered as-is without any warranty either expressed or
+implied; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE! 
+User assumes all risk.
+In no event shall the IEEE or any contributor to this code be liable for
+any damages or losses, including, but not limited to, incidental,
+consequential, or any other damages, resulting from the use or misuse
+of any information contained here.
+
+All comments are the opinions of their respective authors and are not
+necessarily endorsed by the IEEE.
+
+This work is distributed under the LaTeX Project Public License (LPPL)
+( http://www.latex-project.org/ ) version 1.3, and may be freely used,
+distributed and modified. A copy of the LPPL, version 1.3, is included
+in the base LaTeX documentation of all distributions of LaTeX released
+2003/12/01 or later.
+Retain all contribution notices and credits.
+** Modified files should be clearly indicated as such, including  **
+** renaming them and changing author support contact information. **
+*************************************************************************
+
+
+USAGE:
+
+\bibliographystyle{mybstfile}
+\bibliography{IEEEabrv,mybibfile}
+
+where the IEEE titles in the .bib database entries use the strings
+defined here. e.g.,
+
+
+   journal = IEEE_J_AC,
+
+
+to yield "{IEEE} Trans. Automat. Contr."
+
+
+The IEEE uses abbreviated journal titles in their bibliographies -
+this file is suitable for work that is to be submitted to the IEEE.
+
+For work that requires full-length titles, you should use the full
+titles provided in the companion file, IEEEfull.bib.
+
+
+** NOTES **
+
+ 1. Journals have been grouped according to subject in order to make it
+    easier to locate and extract the definitions for related journals - 
+    as most works use references that are confined to a single topic.
+    Magazines are listed in straight alphabetical order.
+
+ 2. String names are closely based on IEEE's own internal acronyms.
+
+ 3. Older, out-of-print IEEE titles are included (but not including titles
+    dating prior to the IEEE's formation from the IRE and AIEE in 1963).
+
+ 4. Abbreviations comply with the official specifications of the IEEE.
+
+
+
+
+
+
+IEEE Journals
+
+
+aerospace and military
+@STRING{IEEE_J_ANNE       = "{IEEE} Trans. Aeronaut. Navig. Electron."}
+@STRING{IEEE_J_AES        = "{IEEE} Trans. Aerosp. Electron. Syst."}
+@STRING{IEEE_J_ANE        = "{IEEE} Trans. Aerosp. Navig. Electron."}
+@STRING{IEEE_J_AS         = "{IEEE} Trans. Aerosp."}
+@STRING{IEEE_J_AIRE       = "{IEEE} Trans. Airborne Electron."}
+@STRING{IEEE_J_MIL        = "{IEEE} Trans. Mil. Electron."}
+
+
+
+autos, transportation and vehicles (non-aerospace)
+@STRING{IEEE_J_ITS        = "{IEEE} Trans. Intell. Transp. Syst."}
+@STRING{IEEE_J_IV         = "{IEEE} Trans. Intell. Veh."}
+@STRING{IEEE_J_TTE        = "{IEEE} Trans. Transport. Electrific."}
+@STRING{IEEE_J_VC         = "{IEEE} Trans. Veh. Commun."}
+@STRING{IEEE_J_VT         = "{IEEE} Trans. Veh. Technol."}
+
+
+
+circuits, signals, systems, audio and controls
+@STRING{IEEE_J_STSP       = "{IEEE} J. Sel. Topics Signal Process."}
+@STRING{IEEE_J_SPL        = "{IEEE} Signal Process. Lett."}
+@STRING{IEEE_J_SYST       = "{IEEE} Syst. J."}
+@STRING{IEEE_J_ASSP       = "{IEEE} Trans. Acoust., Speech, Signal Process."}
+@STRING{IEEE_J_AU         = "{IEEE} Trans. Audio"}
+@STRING{IEEE_J_AUEA       = "{IEEE} Trans. Audio Electroacoust."}
+in 2014 ASL became ASLP
+@STRING{IEEE_J_ASLP       = "{IEEE/ACM} Trans. Audio, Speech, Language Process."}
+@STRING{IEEE_J_ASL        = "{IEEE} Audio, Speech, Language Process."}
+@STRING{IEEE_J_AC         = "{IEEE} Trans. Autom. Control"}
+@STRING{IEEE_J_CAS        = "{IEEE} Trans. Circuits Syst."}
+@STRING{IEEE_J_CASVT      = "{IEEE} Trans. Circuits Syst. Video Technol."}
+@STRING{IEEE_J_CASI       = "{IEEE} Trans. Circuits Syst. {I}"}
+@STRING{IEEE_J_CASII      = "{IEEE} Trans. Circuits Syst. {II}"}
+in 2004 CASI and CASII renamed part title to CASI_RP and CASII_EB, respectively
+@STRING{IEEE_J_CASI_RP    = "{IEEE} Trans. Circuits Syst. {I}"}
+@STRING{IEEE_J_CASII_EB   = "{IEEE} Trans. Circuits Syst. {II}"}
+@STRING{IEEE_J_CT         = "{IEEE} Trans. Circuit Theory"}
+@STRING{IEEE_J_CST        = "{IEEE} Trans. Control Syst. Technol."}
+@STRING{IEEE_J_ETCAS      = "{IEEE} Trans. Emerg. Sel. Topics Circuits Syst."}
+@STRING{IEEE_J_SP         = "{IEEE} Trans. Signal Process."}
+@STRING{IEEE_J_SU         = "{IEEE} Trans. Sonics Ultrason."}
+@STRING{IEEE_J_SAP        = "{IEEE} Trans. Speech Audio Process."}
+@STRING{IEEE_J_UE         = "{IEEE} Trans. Ultrason. Eng."}
+@STRING{IEEE_J_UFFC       = "{IEEE} Trans. Ultrason., Ferroelectr., Freq. Control"}
+
+
+
+communications
+@STRING{IEEE_J_COML       = "{IEEE} Commun. Lett."}
+@STRING{IEEE_J_JSAC       = "{IEEE} J. Sel. Areas Commun."}
+@STRING{IEEE_J_COM        = "{IEEE} Trans. Commun."}
+@STRING{IEEE_J_COMT       = "{IEEE} Trans. Commun. Technol."}
+@STRING{IEEE_J_WCOM       = "{IEEE} Trans. Wireless Commun."}
+@STRING{IEEE_J_WCOML      = "{IEEE} Wireless Commun. Lett."}
+
+
+
+components, packaging and manufacturing
+@STRING{IEEE_J_ADVP       = "{IEEE} Trans. Adv. Packag."}
+@STRING{IEEE_J_CHMT       = "{IEEE} Trans. Compon., Hybrids, Manuf. Technol."}
+in 2011 CAPT became CPMT
+@STRING{IEEE_J_CPMT       = "{IEEE} Trans. Compon. Packag. Manuf. Technol."}
+@STRING{IEEE_J_CPMTA      = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {A}"}
+@STRING{IEEE_J_CPMTB      = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {B}"}
+@STRING{IEEE_J_CPMTC      = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {C}"}
+@STRING{IEEE_J_CAPTS      = "{IEEE} Trans. Compon. Packag. Technol."}
+@STRING{IEEE_J_CAPT       = "{IEEE} Trans. Compon. Packag. Technol."}
+@STRING{IEEE_J_CPART      = "{IEEE} Trans. Compon. Parts"}
+@STRING{IEEE_J_EPM        = "{IEEE} Trans. Electron. Packag. Manuf."}
+@STRING{IEEE_J_MFT        = "{IEEE} Trans. Manuf. Technol."}
+@STRING{IEEE_J_PHP        = "{IEEE} Trans. Parts, Hybrids, Packag."}
+@STRING{IEEE_J_PMP        = "{IEEE} Trans. Parts, Mater., Packag."}
+
+
+
+CAD
+@STRING{IEEE_J_TCAD       = "{IEEE} J. Technol. Comput. Aided Design"}
+@STRING{IEEE_J_CAD        = "{IEEE} Trans. Comput.-Aided Design Integr. Circuits Syst."}
+
+
+
+coding, data, information, knowledge
+@STRING{IEEE_J_BD         = "{IEEE} Trans. Big Data"}
+@STRING{IEEE_J_IFS        = "{IEEE} Trans. Inf. Forensics Security"}
+@STRING{IEEE_J_IT         = "{IEEE} Trans. Inf. Theory"}
+@STRING{IEEE_J_KDE        = "{IEEE} Trans. Knowl. Data Eng."}
+
+
+
+computers, computation, networking and software
+@STRING{IEEE_J_CAL        = "{IEEE} Comput. Archit. Lett."}
+@STRING{IEEE_J_ES         = "{IEEE} Embedded Syst. Lett."}
+@STRING{IEEE_J_IOT        = "{IEEE} Internet Things J."}
+@STRING{IEEE_J_XCDC       = "{IEEE} J. Explor. Solid-State Computat. Devices Circuits"}
+@STRING{IEEE_J_MMCT       = "{IEEE} J. Multiscale and Multiphys. Comput. Techn."}
+@STRING{IEEE_J_SUSC       = "{IEEE} Sustain. Comput."}
+@STRING{IEEE_J_CC         = "{IEEE} Trans. on Cloud Comput."}
+@STRING{IEEE_J_CSS        = "{IEEE} Trans. Comput. Social Syst."}
+@STRING{IEEE_J_C          = "{IEEE} Trans. Comput."}
+@STRING{IEEE_J_CNS        = "{IEEE} Trans. Control Netw. Syst."}
+@STRING{IEEE_J_DSC        = "{IEEE} Trans. Depend. Sec. Comput."}
+@STRING{IEEE_J_ECOMP      = "{IEEE} Trans. Electron. Comput."}
+@STRING{IEEE_J_ETC        = "{IEEE} Trans. Emerg. Topics Comput."}
+@STRING{IEEE_J_EVC        = "{IEEE} Trans. Evol. Comput."}
+@STRING{IEEE_J_FUZZ       = "{IEEE} Trans. Fuzzy Syst."}
+@STRING{IEEE_J_MC         = "{IEEE} Trans. Mobile Comput."}
+@STRING{IEEE_J_MSCS       = "{IEEE} Trans. Multi-Scale Comput. Syst."}
+@STRING{IEEE_J_NET        = "{IEEE/ACM} Trans. Netw."}
+@STRING{IEEE_J_NSE        = "{IEEE} Trans. Netw. Sci. Eng."}
+@STRING{IEEE_J_NSM        = "{IEEE} Trans. Netw. Service Manag."}
+@STRING{IEEE_J_NN         = "{IEEE} Trans. Neural Netw."}
+in 2012 NN became NNLS
+@STRING{IEEE_J_NNLS       = "{IEEE} Trans. Neural Netw. Learn. Syst."}
+@STRING{IEEE_J_PDS        = "{IEEE} Trans. Parallel Distrib. Syst."}
+@STRING{IEEE_J_SC         = "{IEEE} Trans. Serv. Comput."}
+@STRING{IEEE_J_SIPN       = "{IEEE} Trans. Signal Inf. Process. Netw."}
+@STRING{IEEE_J_SE         = "{IEEE} Trans. Softw. Eng."}
+
+
+
+computer graphics, imaging, and multimedia
+@STRING{IEEE_J_JDT        = "{IEEE/OSA} J. Display Technol."}
+@STRING{IEEE_J_IP         = "{IEEE} Trans. Image Process."}
+@STRING{IEEE_J_MM         = "{IEEE} Trans. Multimedia"}
+@STRING{IEEE_J_VCG        = "{IEEE} Trans. Vis. Comput. Graphics"}
+
+
+
+cybernetics, ergonomics, robots, man-machine, artificial intelligence and automation
+@STRING{IEEE_J_JAS        = "{IEEE/CAA} J. Autom. Sinica"}
+@STRING{IEEE_J_JRA        = "{IEEE} J. Robot. Autom."}
+@STRING{IEEE_J_AFFC       = "{IEEE} Trans. Affect. Comput."}
+@STRING{IEEE_J_ASE        = "{IEEE} Trans. Autom. Sci. Eng."}
+@STRING{IEEE_J_AMD        = "{IEEE} Trans. Auton. Mental Develop."}
+@STRING{IEEE_J_CCN        = "{IEEE} Trans. on Cogn. Commun. Netw."}
+in 2015 AMD became CDS
+@STRING{IEEE_J_CDS        = "{IEEE} Trans. Cogn. Develop. Syst."}
+@STRING{IEEE_J_CIAIG      = "{IEEE} Trans. Comput. Intell. {AI} in Games"}
+in 2013 SMCB became CYB
+@STRING{IEEE_J_CYB        = "{IEEE} Trans. Cybern."}
+@STRING{IEEE_J_H          = "{IEEE} Trans. Haptics"}
+@STRING{IEEE_J_HFE        = "{IEEE} Trans. Hum. Factors Electron."}
+in 2013 SMCC became HMS
+@STRING{IEEE_J_HMS        = "{IEEE} Trans. Human-Mach. Syst."}
+@STRING{IEEE_J_MMS        = "{IEEE} Trans. Man-Mach. Syst."}
+@STRING{IEEE_J_PAMI       = "{IEEE} Trans. Pattern Anal. Mach. Intell."}
+in 1989 JRA became RA
+in August 2004, RA split into ASE and RO
+@STRING{IEEE_J_RA         = "{IEEE} Trans. Robot. Autom."}
+@STRING{IEEE_J_RAL        = "{IEEE} Robot. Autom. Lett."}
+@STRING{IEEE_J_RO         = "{IEEE} Trans. Robot."}
+@STRING{IEEE_J_SMC        = "{IEEE} Trans. Syst., Man, Cybern."}
+@STRING{IEEE_J_SMCA       = "{IEEE} Trans. Syst., Man, Cybern. {A}"}
+@STRING{IEEE_J_SMCB       = "{IEEE} Trans. Syst., Man, Cybern. {B}"}
+@STRING{IEEE_J_SMCC       = "{IEEE} Trans. Syst., Man, Cybern. {C}"}
+in 2012 SMCA became SMCS
+@STRING{IEEE_J_SMCS       = "{IEEE} Trans. Syst., Man, Cybern., Syst."}
+@STRING{IEEE_J_SSC        = "{IEEE} Trans. Syst. Sci. Cybern."}
+
+
+
+earth, wind, fire and water
+@STRING{IEEE_J_GRSL       = "{IEEE} Geosci. Remote Sens. Lett."}
+@STRING{IEEE_J_GE         = "{IEEE} Trans. Geosci. Electron."}
+@STRING{IEEE_J_GRS        = "{IEEE} Trans. Geosci. Remote Sens."}
+@STRING{IEEE_J_OE         = "{IEEE} J. Ocean. Eng."}
+@STRING{IEEE_J_STARS      = "{IEEE} J. Sel. Topics Appl. Earth Observ. Remote Sens."}
+
+
+
+education, engineering, history, IEEE, professional
+@STRING{IEEE_J_CJECE      = "Canadian J. Elect. Comput. Eng."}
+@STRING{IEEE_J_PROC       = "Proc. {IEEE}"}
+@STRING{IEEE_J_RITA       = "{IEEE} Revista Iberoamericana de Technolog{\'{i}}as del Aprendizaje"}
+@STRING{IEEE_J_EDU        = "{IEEE} Trans. Educ."}
+@STRING{IEEE_J_EM         = "{IEEE} Trans. Eng. Manag."}
+@STRING{IEEE_J_EWS        = "{IEEE} Trans. Eng. Writing Speech"}
+@STRING{IEEE_J_LT         = "{IEEE} Trans. Learn. Technol."}
+@STRING{IEEE_J_PC         = "{IEEE} Trans. Prof. Commun."}
+
+
+
+electromagnetics, antennas, EMI, magnetics and microwave
+@STRING{IEEE_J_AWPL       = "{IEEE} Antennas Wireless Propag. Lett."}
+@STRING{IEEE_J_MAGL       = "{IEEE} Magn. Lett."}
+@STRING{IEEE_J_MGWL       = "{IEEE} Microw. Guided Wave Lett."}
+@STRING{IEEE_J_MWCL       = "{IEEE} Microw. Wireless Compon. Lett."}
+@STRING{IEEE_J_RFIC       = "{IEEE} {RFIC} J."}
+@STRING{IEEE_J_RFID       = "{IEEE} {RFID} J."}
+@STRING{IEEE_J_AP         = "{IEEE} Trans. Antennas Propag."}
+@STRING{IEEE_J_EMC        = "{IEEE} Trans. Electromagn. Compat."}
+@STRING{IEEE_J_MAG        = "{IEEE} Trans. Magn."}
+@STRING{IEEE_J_MTT        = "{IEEE} Trans. Microw. Theory Techn."}
+@STRING{IEEE_J_RFI        = "{IEEE} Trans. Radio Freq. Interference"}
+@STRING{IEEE_J_TTHZ       = "{IEEE} Trans. {THz} Sci. Technol."}
+@STRING{IEEE_J_TJMJ       = "{IEEE} Transl. J. Magn. Jpn."}
+
+
+
+energy, power and conversion
+@STRING{IEEE_J_PHOT       = "{IEEE} J. Photovolt."}
+@STRING{IEEE_J_PEL        = "{IEEE} Power Electron. Lett."}
+@STRING{IEEE_J_PETS       = "{IEEE} Power Energy Technol. Syst. J."}
+@STRING{IEEE_J_ESTPE      = "{IEEE} Trans. Emerg. Sel. Topics Power Electron."}
+@STRING{IEEE_J_EC         = "{IEEE} Trans. Energy Convers."}
+@STRING{IEEE_J_PWRAS      = "{IEEE} Trans. Power App. Syst."}
+@STRING{IEEE_J_PWRD       = "{IEEE} Trans. Power Del."}
+@STRING{IEEE_J_PWRE       = "{IEEE} Trans. Power Electron."}
+@STRING{IEEE_J_PWRS       = "{IEEE} Trans. Power Syst."}
+@STRING{IEEE_J_SG         = "{IEEE} Trans. Smart Grid"}
+@STRING{IEEE_J_STE        = "{IEEE} Trans. Sustain. Energy"}
+
+
+
+industrial, commercial and consumer
+@STRING{IEEE_J_PSE        = "{IEEE} J. Product Safety Eng."}
+@STRING{IEEE_J_APPIND     = "{IEEE} Trans. Appl. Ind."}
+@STRING{IEEE_J_BC         = "{IEEE} Trans. Broadcast."}
+@STRING{IEEE_J_BCTV       = "{IEEE} Trans. Broadcast Television Receivers"}
+@STRING{IEEE_J_CE         = "{IEEE} Trans. Consum. Electron."}
+@STRING{IEEE_J_IE         = "{IEEE} Trans. Ind. Electron."}
+@STRING{IEEE_J_IECI       = "{IEEE} Trans. Ind. Electron. Contr. Instrum."}
+@STRING{IEEE_J_IA         = "{IEEE} Trans. Ind. Appl."}
+@STRING{IEEE_J_IGA        = "{IEEE} Trans. Ind. Gen. Appl."}
+@STRING{IEEE_J_IINF       = "{IEEE} Trans. Ind. Informat."}
+
+
+
+instrumentation and measurement
+@STRING{IEEE_J_IM         = "{IEEE} Trans. Instrum. Meas."}
+
+
+
+insulation and materials
+@STRING{IEEE_J_JEM        = "{IEEE/TMS} J. Electron. Mater."}
+@STRING{IEEE_J_DEI        = "{IEEE} Trans. Dielectr. Electr. Insul."}
+@STRING{IEEE_J_EI         = "{IEEE} Trans. Electr. Insul."}
+
+
+
+mechanical
+@STRING{IEEE_J_MEMS       = "J. Microelectromech. Syst."}
+in 2014 MEMS became MEMSI
+@STRING{IEEE_J_MEMSI      = "J. Microelectromech. Syst."}
+@STRING{IEEE_J_MECH       = "{IEEE/ASME} Trans. Mechatronics"}
+
+
+
+medical and biological
+@STRING{IEEE_J_BHI        = "{IEEE} J. Biomed. Health Inform."}
+@STRING{IEEE_J_TEHM       = "{IEEE} J. Transl. Eng. Health Med."}
+@STRING{IEEE_J_LS         = "{IEEE} Life Sci. Lett."}
+@STRING{IEEE_J_RBME       = "{IEEE} Rev. Biomed. Eng."}
+@STRING{IEEE_J_BCAS       = "{IEEE} Trans. Biomed. Circuits Syst."}
+@STRING{IEEE_J_BMELC      = "{IEEE} Trans. Bio-Med. Electron."}
+B-ME later dropped the hyphen and became the BME
+@STRING{IEEE_J_BME        = "{IEEE} Trans. Biomed. Eng."}
+@STRING{IEEE_J_B-ME       = "{IEEE} Trans. Bio-Med. Eng."}
+@STRING{IEEE_J_CBB        = "{IEEE/ACM} Trans. Comput. Biol. Bioinformatics"}
+@STRING{IEEE_J_ITBM       = "{IEEE} Trans. Inf. Technol. Biomed."}
+@STRING{IEEE_J_ME         = "{IEEE} Trans. Med. Electron."}
+@STRING{IEEE_J_MI         = "{IEEE} Trans. Med. Imag."}
+@STRING{IEEE_J_MBSC       = "{IEEE} Trans. Mol. Biol. Multi-Scale Commun."}
+@STRING{IEEE_J_NB         = "{IEEE} Trans. Nanobiosci."}
+@STRING{IEEE_J_NSRE       = "{IEEE} Trans. Neural Syst. Rehabil. Eng."}
+@STRING{IEEE_J_RE         = "{IEEE} Trans. Rehabil. Eng."}
+
+
+
+optics, lightwave and photonics
+@STRING{IEEE_J_JLT        = "J. Lightw. Technol."}
+@STRING{IEEE_J_OCN        = "{IEEE} J. Opt. Commun. Netw."}
+@STRING{IEEE_J_PJ         = "{IEEE} Photon. J."}
+@STRING{IEEE_J_PTL        = "{IEEE} Photon. Technol. Lett."}
+
+
+
+physics, electrons, nanotechnology, nuclear and quantum electronics
+@STRING{IEEE_J_EDL        = "{IEEE} Electron Device Lett."}
+@STRING{IEEE_J_EDS        = "{IEEE} J. Electron Devices Soc."}
+@STRING{IEEE_J_JQE        = "{IEEE} J. Quantum Electron."}
+@STRING{IEEE_J_JSTQE      = "{IEEE} J. Sel. Topics Quantum Electron."}
+@STRING{IEEE_J_ENANO      = "{IEEE} Nanotechnol. Express"}
+@STRING{IEEE_J_ED         = "{IEEE} Trans. Electron Devices"}
+@STRING{IEEE_J_NANO       = "{IEEE} Trans. Nanotechnol."}
+@STRING{IEEE_J_NS         = "{IEEE} Trans. Nucl. Sci."}
+@STRING{IEEE_J_PS         = "{IEEE} Trans. Plasma Sci."}
+
+
+
+reliability
+@STRING{IEEE_J_DMR        = "{IEEE} Trans. Device Mater. Rel."}
+@STRING{IEEE_J_R          = "{IEEE} Trans. Rel."}
+
+
+
+semiconductors, superconductors, electrochemical and solid state
+@STRING{IEEE_J_ESSL       = "{IEEE/ECS} Electrochem. Solid-State Lett."}
+@STRING{IEEE_J_JSSC       = "{IEEE} J. Solid-State Circuits"}
+@STRING{IEEE_J_ASC        = "{IEEE} Trans. Appl. Supercond."}
+@STRING{IEEE_J_SM         = "{IEEE} Trans. Semicond. Manuf."}
+
+
+
+sensors
+@STRING{IEEE_J_SENSOR     = "{IEEE} Sensors J."}
+
+
+
+VLSI
+@STRING{IEEE_J_VLSI       = "{IEEE} Trans. {VLSI} Syst."}
+
+
+
+
+
+
+IEEE Magazines and Online Publications
+
+
+@STRING{IEEE_O_ACC        = "{IEEE} Access"}
+@STRING{IEEE_M_AES        = "{IEEE} Aerosp. Electron. Syst. Mag."}
+@STRING{IEEE_M_HIST       = "{IEEE} Ann. Hist. Comput."}
+@STRING{IEEE_M_AP         = "{IEEE} Antennas Propag. Mag."}
+@STRING{IEEE_M_ASSP       = "{IEEE} {ASSP} Mag."}
+@STRING{IEEE_M_CHINAC     = "China Commun."}
+@STRING{IEEE_M_CD         = "{IEEE} Circuits Devices Mag."}
+@STRING{IEEE_M_CAS        = "{IEEE} Circuits Syst. Mag."}
+@STRING{IEEE_M_COM        = "{IEEE} Commun. Mag."}
+@STRING{IEEE_M_COMSOC     = "{IEEE} Commun. Soc. Mag."}
+@STRING{IEEE_O_CSTO       = "{IEEE} Commun. Surveys Tuts."}
+@STRING{IEEE_M_CIM        = "{IEEE} Comput. Intell. Mag."}
+CSEM changed to CSE in 1999
+@STRING{IEEE_M_CSE        = "{IEEE} Comput. Sci. Eng."}
+@STRING{IEEE_M_CSEM       = "{IEEE} Comput. Sci. Eng. Mag."}
+@STRING{IEEE_M_C          = "Computer"}
+@STRING{IEEE_M_CAP        = "{IEEE} Comput. Appl. Power"}
+@STRING{IEEE_M_CGA        = "{IEEE} Comput. Graph. Appl."}
+@STRING{IEEE_M_CONC       = "{IEEE} Concurrency"}
+@STRING{IEEE_M_CS         = "{IEEE} Control Syst. Mag."}
+in 2012 DTC became DT
+@STRING{IEEE_M_DT         = "{IEEE} Des. Test"}
+@STRING{IEEE_M_DTC        = "{IEEE} Des. Test. Comput."}
+@STRING{IEEE_O_DSO        = "{IEEE} Distrib. Syst. Online"}
+@STRING{IEEE_M_EI         = "{IEEE} Electr. Insul. Mag."}
+@STRING{IEEE_M_ETF        = "{IEEE} Electrific. Mag."}
+@STRING{IEEE_M_EMC        = "{IEEE} Electromagn. Compat."}
+@STRING{IEEE_M_ETR        = "{IEEE} ElectroTechnol. Rev."}
+@STRING{IEEE_M_EMR        = "{IEEE} Eng. Manag. Rev."}
+@STRING{IEEE_M_EMB        = "{IEEE} Eng. Med. Biol. Mag."}
+@STRING{IEEE_M_EXP        = "{IEEE} Expert"}
+@STRING{IEEE_M_GRS        = "{IEEE} Geosci. Remote Sens. Mag."}
+@STRING{IEEE_M_IA         = "{IEEE} Ind. Appl. Mag."}
+@STRING{IEEE_M_IE         = "{IEEE} Ind. Electron. Mag."}
+@STRING{IEEE_M_IM         = "{IEEE} Instrum. Meas. Mag."}
+@STRING{IEEE_M_IS         = "{IEEE} Intell. Syst."}
+@STRING{IEEE_M_ITS        = "{IEEE} Intell. Transp. Syst. Mag."}
+@STRING{IEEE_M_IC         = "{IEEE} Internet Comput."}
+@STRING{IEEE_M_ITP        = "{IEEE} {IT} Prof."}
+@STRING{IEEE_M_MICRO      = "{IEEE} Micro"}
+@STRING{IEEE_M_MW         = "{IEEE} Microw. Mag."}
+@STRING{IEEE_M_MM         = "{IEEE} Multimedia"}
+@STRING{IEEE_M_NANO       = "{IEEE} Nanotechnol. Mag."}
+@STRING{IEEE_M_NET        = "{IEEE} Netw."}
+IEEE's editorial manual lists "Pers. Commun.", 
+but "Personal Commun. Mag." seems to be what is used in the journals
+@STRING{IEEE_M_PCOM       = "{IEEE} Personal Commun. Mag."}
+@STRING{IEEE_M_PVC        = "{IEEE} Pervasive Comput."}
+@STRING{IEEE_M_POT        = "{IEEE} Potentials"}
+@STRING{IEEE_M_PEL        = "{IEEE} Power Electron. Mag."}
+CAP and PER merged to form PE in 2003
+@STRING{IEEE_M_PE         = "{IEEE} Power Energy Mag."}
+@STRING{IEEE_M_PER        = "{IEEE} Power Eng. Rev."}
+@STRING{IEEE_M_PULSE      = "{IEEE} Pulse"}
+@STRING{IEEE_M_RA         = "{IEEE} Robot. Autom. Mag."}
+@STRING{IEEE_M_SAP        = "{IEEE} Security Privacy"}
+@STRING{IEEE_M_SP         = "{IEEE} Signal Process. Mag."}
+@STRING{IEEE_M_S          = "{IEEE} Softw."}
+@STRING{IEEE_M_SSC        = "{IEEE} Solid-State Circuits Mag."}
+@STRING{IEEE_M_SPECT      = "{IEEE} Spectr."}
+@STRING{IEEE_M_SMC        = "{IEEE} Syst., Man, Cybern. Mag."}
+@STRING{IEEE_M_TS         = "{IEEE} Technol. Soc. Mag."}
+@STRING{IEEE_M_VT         = "{IEEE} Veh. Technol. Mag."}
+@STRING{IEEE_M_WC         = "{IEEE} Wireless Commun."}
+@STRING{IEEE_M_TODAY      = "Today's Engineer"}
+
+
+
+
+
+--
+EOF

From 03c48259039888b0265f83e94af885844045636d Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Mon, 22 Feb 2021 09:28:50 +0100
Subject: [PATCH 03/31] add IEEE csl, let pandoc sort out the citation mess

---
 .../templates/ieee/skeleton/ieee.csl          | 400 ++++++++++++++++++
 1 file changed, 400 insertions(+)
 create mode 100644 inst/rmarkdown/templates/ieee/skeleton/ieee.csl

diff --git a/inst/rmarkdown/templates/ieee/skeleton/ieee.csl b/inst/rmarkdown/templates/ieee/skeleton/ieee.csl
new file mode 100644
index 000000000..0f6a06420
--- /dev/null
+++ b/inst/rmarkdown/templates/ieee/skeleton/ieee.csl
@@ -0,0 +1,400 @@
+<?xml version="1.0" encoding="utf-8"?>
+<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only">
+  <info>
+    <title>IEEE</title>
+    <id>http://www.zotero.org/styles/ieee</id>
+    <link href="http://www.zotero.org/styles/ieee" rel="self"/>
+    <link href="https://ieeeauthorcenter.ieee.org/wp-content/uploads/IEEE-Reference-Guide.pdf" rel="documentation"/>
+    <link href="https://journals.ieeeauthorcenter.ieee.org/your-role-in-article-production/ieee-editorial-style-manual/" rel="documentation"/>
+    <author>
+      <name>Michael Berkowitz</name>
+      <email>mberkowi@gmu.edu</email>
+    </author>
+    <contributor>
+      <name>Julian Onions</name>
+      <email>julian.onions@gmail.com</email>
+    </contributor>
+    <contributor>
+      <name>Rintze Zelle</name>
+      <uri>http://twitter.com/rintzezelle</uri>
+    </contributor>
+    <contributor>
+      <name>Stephen Frank</name>
+      <uri>http://www.zotero.org/sfrank</uri>
+    </contributor>
+    <contributor>
+      <name>Sebastian Karcher</name>
+    </contributor>
+    <contributor>
+      <name>Giuseppe Silano</name>
+      <email>g.silano89@gmail.com</email>
+      <uri>http://giuseppesilano.net</uri>
+    </contributor>
+    <contributor>
+      <name>Patrick O'Brien</name>
+    </contributor>
+    <contributor>
+      <name>Brenton M. Wiernik</name>
+    </contributor>
+    <category citation-format="numeric"/>
+    <category field="engineering"/>
+    <category field="generic-base"/>
+    <summary>IEEE style as per the 2018 guidelines, V 11.12.2018.</summary>
+    <updated>2019-12-20T09:14:19+00:00</updated>
+    <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
+  </info>
+  <locale xml:lang="en">
+    <terms>
+      <term name="chapter" form="short">ch.</term>
+      <term name="presented at">presented at the</term>
+      <term name="available at">available</term>
+    </terms>
+  </locale>
+  <!-- Macros -->
+  <macro name="status">
+    <choose>
+      <if variable="page issue volume" match="none">
+        <text variable="status" text-case="capitalize-first" suffix="" font-weight="bold"/>
+      </if>
+    </choose>
+  </macro>
+  <macro name="edition">
+    <choose>
+      <if type="bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="any">
+        <choose>
+          <if is-numeric="edition">
+            <group delimiter=" ">
+              <number variable="edition" form="ordinal"/>
+              <text term="edition" form="short"/>
+            </group>
+          </if>
+          <else>
+            <text variable="edition" text-case="capitalize-first" suffix="."/>
+          </else>
+        </choose>
+      </if>
+    </choose>
+  </macro>
+  <macro name="issued">
+    <choose>
+      <if type="article-journal report" match="any">
+        <date variable="issued">
+          <date-part name="month" form="short" suffix=" "/>
+          <date-part name="year" form="long"/>
+        </date>
+      </if>
+      <else-if type="bill book chapter graphic legal_case legislation motion_picture song thesis" match="any">
+        <date variable="issued">
+          <date-part name="year" form="long"/>
+        </date>
+      </else-if>
+      <else-if type="paper-conference" match="any">
+        <date variable="issued">
+          <date-part name="month" form="short"/>
+          <date-part name="year" prefix=" "/>
+        </date>
+      </else-if>
+      <else>
+        <date variable="issued">
+          <date-part name="month" form="short" suffix=" "/>
+          <date-part name="day" form="numeric-leading-zeros" suffix=", "/>
+          <date-part name="year"/>
+        </date>
+      </else>
+    </choose>
+  </macro>
+  <macro name="author">
+    <names variable="author">
+      <name and="text" et-al-min="7" et-al-use-first="1" initialize-with=". "/>
+      <label form="short" prefix=", " text-case="capitalize-first"/>
+      <et-al font-style="italic"/>
+      <substitute>
+        <names variable="editor"/>
+        <names variable="translator"/>
+      </substitute>
+    </names>
+  </macro>
+  <macro name="editor">
+    <names variable="editor">
+      <name initialize-with=". " delimiter=", " and="text"/>
+      <label form="short" prefix=", " text-case="capitalize-first"/>
+    </names>
+  </macro>
+  <macro name="locators">
+    <group delimiter=", ">
+      <text macro="edition"/>
+      <group delimiter=" ">
+        <text term="volume" form="short"/>
+        <number variable="volume" form="numeric"/>
+      </group>
+      <group delimiter=" ">
+        <number variable="number-of-volumes" form="numeric"/>
+        <text term="volume" form="short" plural="true"/>
+      </group>
+      <group delimiter=" ">
+        <text term="issue" form="short"/>
+        <number variable="issue" form="numeric"/>
+      </group>
+    </group>
+  </macro>
+  <macro name="title">
+    <choose>
+      <if type="bill book graphic legal_case legislation motion_picture song" match="any">
+        <text variable="title" font-style="italic"/>
+      </if>
+      <else>
+        <text variable="title" quotes="true"/>
+      </else>
+    </choose>
+  </macro>
+  <macro name="publisher">
+    <choose>
+      <if type="bill book chapter graphic legal_case legislation motion_picture paper-conference song" match="any">
+        <group delimiter=": ">
+          <text variable="publisher-place"/>
+          <text variable="publisher"/>
+        </group>
+      </if>
+      <else>
+        <group delimiter=", ">
+          <text variable="publisher"/>
+          <text variable="publisher-place"/>
+        </group>
+      </else>
+    </choose>
+  </macro>
+  <macro name="event">
+    <choose>
+      <if type="paper-conference speech" match="any">
+        <choose>
+          <!-- Published Conference Paper -->
+          <if variable="collection-editor editor editorial-director issue page volume" match="any">
+            <group delimiter=", ">
+              <group delimiter=" ">
+                <text term="in"/>
+                <text variable="container-title" font-style="italic"/>
+              </group>
+              <text variable="event-place"/>
+            </group>
+          </if>
+          <!-- Unpublished Conference Paper -->
+          <else>
+            <group delimiter=", ">
+              <group delimiter=" ">
+                <text term="presented at"/>
+                <text variable="event"/>
+              </group>
+              <text variable="event-place"/>
+            </group>
+          </else>
+        </choose>
+      </if>
+    </choose>
+  </macro>
+  <macro name="access">
+    <choose>
+      <if type="webpage post post-weblog" match="any">
+        <choose>
+          <if variable="URL">
+            <group delimiter=" ">
+              <text variable="URL"/>
+              <group delimiter=" " prefix="(" suffix=")">
+                <text term="accessed"/>
+                <date variable="accessed">
+                  <date-part name="month" form="short" strip-periods="false"/>
+                  <date-part name="day" form="numeric-leading-zeros" prefix=" " suffix=", "/>
+                  <date-part name="year" form="long"/>
+                </date>
+              </group>
+            </group>
+          </if>
+        </choose>
+      </if>
+      <else-if match="any" variable="DOI">
+        <text variable="DOI" prefix="doi: "/>
+      </else-if>
+      <else>
+        <group delimiter=". ">
+          <group delimiter=": ">
+            <text term="accessed" text-case="capitalize-first"/>
+            <date variable="accessed">
+              <date-part name="month" form="short" suffix=" "/>
+              <date-part name="day" form="numeric-leading-zeros" suffix=", "/>
+              <date-part name="year"/>
+            </date>
+          </group>
+          <text term="online" prefix="[" suffix="]" text-case="capitalize-first"/>
+          <group delimiter=": ">
+            <text term="available at" text-case="capitalize-first"/>
+            <text variable="URL"/>
+          </group>
+        </group>
+      </else>
+    </choose>
+  </macro>
+  <macro name="page">
+    <choose>
+      <if type="article-journal" variable="number" match="all">
+        <group delimiter=" ">
+          <text value="Art."/>
+          <text term="issue" form="short"/>
+          <text variable="number"/>
+        </group>
+      </if>
+      <else>
+        <group delimiter=" ">
+          <label variable="page" form="short"/>
+          <text variable="page"/>
+        </group>
+      </else>
+    </choose>
+  </macro>
+  <macro name="citation-locator">
+    <group delimiter=" ">
+      <choose>
+        <if locator="page">
+          <label variable="locator" form="short"/>
+        </if>
+        <else>
+          <label variable="locator" form="short" text-case="capitalize-first"/>
+        </else>
+      </choose>
+      <text variable="locator"/>
+    </group>
+  </macro>
+  <!-- Citation -->
+  <citation collapse="citation-number">
+    <sort>
+      <key variable="citation-number"/>
+    </sort>
+    <layout delimiter=", ">
+      <group prefix="[" suffix="]" delimiter=", ">
+        <text variable="citation-number"/>
+        <text macro="citation-locator"/>
+      </group>
+    </layout>
+  </citation>
+  <!-- Bibliography -->
+  <bibliography entry-spacing="0" second-field-align="flush">
+    <layout suffix=".">
+      <!-- Citation Number -->
+      <text variable="citation-number" prefix="[" suffix="]"/>
+      <!-- Author(s) -->
+      <text macro="author" suffix=", "/>
+      <!-- Rest of Citation -->
+      <choose>
+        <!-- Specific Formats -->
+        <if type="article-journal">
+          <group delimiter=", ">
+            <text macro="title"/>
+            <text variable="container-title" font-style="italic" form="short"/>
+            <text macro="locators"/>
+            <text macro="page"/>
+            <text macro="issued"/>
+            <text macro="status"/>
+            <text macro="access"/>
+          </group>
+        </if>
+        <else-if type="paper-conference speech" match="any">
+          <group delimiter=", ">
+            <text macro="title"/>
+            <text macro="event"/>
+            <text macro="issued"/>
+            <text macro="locators"/>
+            <text macro="page"/>
+            <text macro="status"/>
+            <text macro="access"/>
+          </group>
+        </else-if>
+        <else-if type="report">
+          <group delimiter=". ">
+            <group delimiter=", ">
+              <text macro="title"/>
+              <text macro="publisher"/>
+              <group delimiter=" ">
+                <text variable="genre"/>
+                <text variable="number"/>
+              </group>
+              <text macro="issued"/>
+            </group>
+            <text macro="access"/>
+          </group>
+        </else-if>
+        <else-if type="thesis">
+          <group delimiter=", ">
+            <text macro="title"/>
+            <text variable="genre"/>
+            <text macro="publisher"/>
+            <text macro="issued"/>
+          </group>
+        </else-if>
+        <else-if type="webpage post-weblog post" match="any">
+          <group delimiter=", " suffix=". ">
+            <text macro="title"/>
+            <text variable="container-title" font-style="italic"/>
+            <text macro="issued"/>
+          </group>
+          <text macro="access"/>
+        </else-if>
+        <else-if type="patent">
+          <group delimiter=", ">
+            <text macro="title"/>
+            <text variable="number"/>
+            <text macro="issued"/>
+          </group>
+        </else-if>
+        <!-- Generic/Fallback Formats -->
+        <else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
+          <group delimiter=", " suffix=". ">
+            <text macro="title"/>
+            <text macro="locators"/>
+          </group>
+          <group delimiter=", ">
+            <text macro="publisher"/>
+            <text macro="issued"/>
+            <text macro="page"/>
+          </group>
+        </else-if>
+        <else-if type="article-magazine article-newspaper broadcast interview manuscript map patent personal_communication song speech thesis webpage" match="any">
+          <group delimiter=", ">
+            <text macro="title"/>
+            <text variable="container-title" font-style="italic"/>
+            <text macro="locators"/>
+            <text macro="publisher"/>
+            <text macro="page"/>
+            <text macro="issued"/>
+          </group>
+        </else-if>
+        <else-if type="chapter paper-conference" match="any">
+          <group delimiter=", " suffix=", ">
+            <text macro="title"/>
+            <group delimiter=" ">
+              <text term="in"/>
+              <text variable="container-title" font-style="italic"/>
+            </group>
+            <text macro="locators"/>
+          </group>
+          <text macro="editor" suffix=" "/>
+          <group delimiter=", ">
+            <text macro="publisher"/>
+            <text macro="issued"/>
+            <text macro="page"/>
+          </group>
+        </else-if>
+        <else>
+          <group delimiter=", " suffix=". ">
+            <text macro="title"/>
+            <text variable="container-title" font-style="italic"/>
+            <text macro="locators"/>
+          </group>
+          <group delimiter=", ">
+            <text macro="publisher"/>
+            <text macro="page"/>
+            <text macro="issued"/>
+            <text macro="access"/>
+          </group>
+        </else>
+      </choose>
+    </layout>
+  </bibliography>
+</style>

From dfb06d2d49c791aa5c91427834066c4b6f69287e Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Mon, 22 Feb 2021 09:30:02 +0100
Subject: [PATCH 04/31] default to using csl (pandoc) for citations instead of
 latex (bib[la]tex, natbib).

---
 .../templates/ieee/skeleton/skeleton.Rmd          | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index ab35cbfe0..32c8491b6 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -2,10 +2,10 @@
 title: Bare Demo of IEEEtran.cls for IEEE Conferences & Journals
 
 ## Either conference OR journal should be set;
-# for `conference` the value makes no difference, for `journal` you should set the
-# title of the journal you're publishing with, as it will be used in running headers.
-conference: true
-# journal: IEEE Transactions on Learning Technology ## specify journal for page headers
+## for `conference` the value makes no difference, for `journal` you should set the
+## title of the journal you're publishing with, as it will be used in running headers.
+# conference: true
+journal: IEEE Transactions on Learning Technology ## specify journal for page headers
 
 affiliation:  
   ## use one only of the following
@@ -100,8 +100,13 @@ with_amsmath: true
 # with_array: true
 # with_dblfloatfix: true
 
-natbib: true
+# natbib: true
+# biblatex: true
 bibliography: mybibfile.bib
+
+citation-style: ieee
+link-citations: true 
+
 output: rticles::ieee_article
 #citation_sorting: none   ## used as sorting option of the biblatex package (if selected)
 ---

From 24143729411ae546e02d8e9fad481ed2dfc94712 Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Wed, 24 Feb 2021 08:29:07 +0100
Subject: [PATCH 05/31] fix typos, cleanup docs.

---
 .../templates/ieee/skeleton/skeleton.Rmd      | 26 ++++++++++++-------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 32c8491b6..3dcc87c11 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -4,6 +4,7 @@ title: Bare Demo of IEEEtran.cls for IEEE Conferences & Journals
 ## Either conference OR journal should be set;
 ## for `conference` the value makes no difference, for `journal` you should set the
 ## title of the journal you're publishing with, as it will be used in running headers.
+## if neither are set, the document defaults to conference mode.
 # conference: true
 journal: IEEE Transactions on Learning Technology ## specify journal for page headers
 
@@ -13,13 +14,12 @@ affiliation:
   institution-columnar: true      ## one column per institution (multiple autors eventually)
   # wide: true                    ## one column wide author/affiliation fields
 
-
   ## A custom author ordering field that breaks institution grouping. 
-  ## This is the only supported format for the journal layout.
+  ## This is the only supported format for the journal mode.
   author:                       
     - name: Eldon Tyrell
-      member: Member, IEEE       ## only used for journal layout
-      mark: 4                    ## ignored for journal layout
+      member: Member, IEEE       ## only used for journal mode
+      mark: 4                    ## ignored for journal mode
       email: eldon@starfleet-academy.star
     - name: Michael Shell
       member: Fellow, OSA        
@@ -50,7 +50,7 @@ affiliation:
   #    - name: Eldon Tyrell
   #      mark: 4
   
-  ## all information listed here is ignored in journal mode
+  ## institution information is ignored in journal mode
   institution:
     - name: Georgia Institute of Technology
       department: School of Electrical and Computer Engineering
@@ -80,7 +80,7 @@ affiliation:
         - name: Roy Batty
           email: roy@replicant.offworld
 
-  # ## used for author affiliations and other acknowledgements in journal mode
+  # ## used only in journal mode for author affiliations and other acknowledgements
   thanks:
     - "E. Tyrell and R. Batty are with Starfleet Academy."
     - "M. Shell was with the Department of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA, 30332 USA e-mail: (see http://www.michaelshell.org/contact.html)."
@@ -93,22 +93,30 @@ abstract: |
 
 # use some specific Tex packages if needed. 
 # with_ifpdf: true
-# with_cite: true ## note that since pandoc doesn't use \cite, this does nothing.
+# with_cite: true
 # amsmath need to be true to use with bookdown for referencing equations.
 with_amsmath: true
 # with_algorithmic: true
 # with_array: true
 # with_dblfloatfix: true
 
+
+## If you're using latex style \cite commands, choose the backend you want to use.
 # natbib: true
 # biblatex: true
-bibliography: mybibfile.bib
+# citation_sorting: none   ## used as sorting option of the biblatex package (if selected)
 
+## If you're using pandoc style @cite commands, these options set the correct
+## citation style, and add links to citations. 
+## Note that this bypasses latex packages that alter citations, e.g. hyperref.
 citation-style: ieee
 link-citations: true 
 
+## bibliography file(s)
+bibliography: mybibfile.bib
+
+
 output: rticles::ieee_article
-#citation_sorting: none   ## used as sorting option of the biblatex package (if selected)
 ---
 
 Introduction

From 1f398c32c46e2b689726887894f8a71869baa538 Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Wed, 24 Feb 2021 08:41:03 +0100
Subject: [PATCH 06/31] add news line and contributor info

---
 DESCRIPTION | 1 +
 NEWS.md     | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/DESCRIPTION b/DESCRIPTION
index 03918da38..da284687c 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -46,6 +46,7 @@ Authors@R: c(
   person("Alfredo", "Hernández", role = c("ctb"), email = "aldomann.designs@gmail.com", comment = c(ORCID = "0000-0002-2660-4545")),
   person("Christophe", "Dervieux", role = c("aut"), email = "cderv@rstudio.com", comment = c(ORCID = "0000-0003-4474-2498")),
   person("Stefano", "Coretta", role = c("ctb"), email = "stefano.coretta@gmail.com", comment = c(ORCID = "0000-0001-9627-5532", github = "stefanocoretta"))
+  person("Karel", "Kroeze", role = c("ctb"), email = "karel.kroeze@gmail.com" comment = c(ORCID = "0000-0002-7000-7377", github = "karel-kroeze"))
   )
 Description: A suite of custom R Markdown formats and templates for
   authoring journal articles and conference submissions.
diff --git a/NEWS.md b/NEWS.md
index 9ca34dfd1..5f09c3c9b 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,5 @@
+- `ieee_article()` now supports both conference papers and journal articles (thanks, @Karel-Kroeze). 
+
 rticles 0.19
 ---------------------------------------------------------------------
 - Update Copernicus Publications template to version 6.2 from 2021-01-15 (thanks, @RLumSK, #366).

From 9edfd942ebc027bc55c6f728e2bb7c0cbe24c7c3 Mon Sep 17 00:00:00 2001
From: Fluffy <fluffy.l2032@gmail.com>
Date: Wed, 24 Feb 2021 08:43:36 +0100
Subject: [PATCH 07/31] remove abbreviations bib file

---
 .../templates/ieee/skeleton/IEEEabrv.bib      | 489 ------------------
 1 file changed, 489 deletions(-)
 delete mode 100644 inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib

diff --git a/inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib b/inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib
deleted file mode 100644
index bcaccfc14..000000000
--- a/inst/rmarkdown/templates/ieee/skeleton/IEEEabrv.bib
+++ /dev/null
@@ -1,489 +0,0 @@
-
-IEEEabrv.bib
-V1.14 (2015/08/26)
-Copyright (c) 2002-2015 by Michael Shell
-See: http://www.michaelshell.org/
-for current contact information.
-
-BibTeX bibliography string definitions of the ABBREVIATED titles of
-IEEE journals and magazines and online publications.
-
-This file is designed for bibliography styles that require 
-abbreviated titles and is not for use in bibliographies that
-require full-length titles.
-
-Support sites:
-http://www.michaelshell.org/tex/ieeetran/
-http://www.ctan.org/pkg/ieeetran
-and/or
-http://www.ieee.org/
-
-Special thanks to Laura Hyslop, Ken Rawson, Kevin Lisankie and
-Mona Mittra of the IEEE for their help in obtaining the information needed
-to compile this file. Also, Volker Kuhlmann, Moritz Borgmann,
-Yannick Berker, Nicol�s Barabino, Chuanren Wu and Santiago Cogollos Borras
-kindly provided some corrections and additions.
-
-
-*************************************************************************
-Legal Notice:
-This code is offered as-is without any warranty either expressed or
-implied; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE! 
-User assumes all risk.
-In no event shall the IEEE or any contributor to this code be liable for
-any damages or losses, including, but not limited to, incidental,
-consequential, or any other damages, resulting from the use or misuse
-of any information contained here.
-
-All comments are the opinions of their respective authors and are not
-necessarily endorsed by the IEEE.
-
-This work is distributed under the LaTeX Project Public License (LPPL)
-( http://www.latex-project.org/ ) version 1.3, and may be freely used,
-distributed and modified. A copy of the LPPL, version 1.3, is included
-in the base LaTeX documentation of all distributions of LaTeX released
-2003/12/01 or later.
-Retain all contribution notices and credits.
-** Modified files should be clearly indicated as such, including  **
-** renaming them and changing author support contact information. **
-*************************************************************************
-
-
-USAGE:
-
-\bibliographystyle{mybstfile}
-\bibliography{IEEEabrv,mybibfile}
-
-where the IEEE titles in the .bib database entries use the strings
-defined here. e.g.,
-
-
-   journal = IEEE_J_AC,
-
-
-to yield "{IEEE} Trans. Automat. Contr."
-
-
-The IEEE uses abbreviated journal titles in their bibliographies -
-this file is suitable for work that is to be submitted to the IEEE.
-
-For work that requires full-length titles, you should use the full
-titles provided in the companion file, IEEEfull.bib.
-
-
-** NOTES **
-
- 1. Journals have been grouped according to subject in order to make it
-    easier to locate and extract the definitions for related journals - 
-    as most works use references that are confined to a single topic.
-    Magazines are listed in straight alphabetical order.
-
- 2. String names are closely based on IEEE's own internal acronyms.
-
- 3. Older, out-of-print IEEE titles are included (but not including titles
-    dating prior to the IEEE's formation from the IRE and AIEE in 1963).
-
- 4. Abbreviations comply with the official specifications of the IEEE.
-
-
-
-
-
-
-IEEE Journals
-
-
-aerospace and military
-@STRING{IEEE_J_ANNE       = "{IEEE} Trans. Aeronaut. Navig. Electron."}
-@STRING{IEEE_J_AES        = "{IEEE} Trans. Aerosp. Electron. Syst."}
-@STRING{IEEE_J_ANE        = "{IEEE} Trans. Aerosp. Navig. Electron."}
-@STRING{IEEE_J_AS         = "{IEEE} Trans. Aerosp."}
-@STRING{IEEE_J_AIRE       = "{IEEE} Trans. Airborne Electron."}
-@STRING{IEEE_J_MIL        = "{IEEE} Trans. Mil. Electron."}
-
-
-
-autos, transportation and vehicles (non-aerospace)
-@STRING{IEEE_J_ITS        = "{IEEE} Trans. Intell. Transp. Syst."}
-@STRING{IEEE_J_IV         = "{IEEE} Trans. Intell. Veh."}
-@STRING{IEEE_J_TTE        = "{IEEE} Trans. Transport. Electrific."}
-@STRING{IEEE_J_VC         = "{IEEE} Trans. Veh. Commun."}
-@STRING{IEEE_J_VT         = "{IEEE} Trans. Veh. Technol."}
-
-
-
-circuits, signals, systems, audio and controls
-@STRING{IEEE_J_STSP       = "{IEEE} J. Sel. Topics Signal Process."}
-@STRING{IEEE_J_SPL        = "{IEEE} Signal Process. Lett."}
-@STRING{IEEE_J_SYST       = "{IEEE} Syst. J."}
-@STRING{IEEE_J_ASSP       = "{IEEE} Trans. Acoust., Speech, Signal Process."}
-@STRING{IEEE_J_AU         = "{IEEE} Trans. Audio"}
-@STRING{IEEE_J_AUEA       = "{IEEE} Trans. Audio Electroacoust."}
-in 2014 ASL became ASLP
-@STRING{IEEE_J_ASLP       = "{IEEE/ACM} Trans. Audio, Speech, Language Process."}
-@STRING{IEEE_J_ASL        = "{IEEE} Audio, Speech, Language Process."}
-@STRING{IEEE_J_AC         = "{IEEE} Trans. Autom. Control"}
-@STRING{IEEE_J_CAS        = "{IEEE} Trans. Circuits Syst."}
-@STRING{IEEE_J_CASVT      = "{IEEE} Trans. Circuits Syst. Video Technol."}
-@STRING{IEEE_J_CASI       = "{IEEE} Trans. Circuits Syst. {I}"}
-@STRING{IEEE_J_CASII      = "{IEEE} Trans. Circuits Syst. {II}"}
-in 2004 CASI and CASII renamed part title to CASI_RP and CASII_EB, respectively
-@STRING{IEEE_J_CASI_RP    = "{IEEE} Trans. Circuits Syst. {I}"}
-@STRING{IEEE_J_CASII_EB   = "{IEEE} Trans. Circuits Syst. {II}"}
-@STRING{IEEE_J_CT         = "{IEEE} Trans. Circuit Theory"}
-@STRING{IEEE_J_CST        = "{IEEE} Trans. Control Syst. Technol."}
-@STRING{IEEE_J_ETCAS      = "{IEEE} Trans. Emerg. Sel. Topics Circuits Syst."}
-@STRING{IEEE_J_SP         = "{IEEE} Trans. Signal Process."}
-@STRING{IEEE_J_SU         = "{IEEE} Trans. Sonics Ultrason."}
-@STRING{IEEE_J_SAP        = "{IEEE} Trans. Speech Audio Process."}
-@STRING{IEEE_J_UE         = "{IEEE} Trans. Ultrason. Eng."}
-@STRING{IEEE_J_UFFC       = "{IEEE} Trans. Ultrason., Ferroelectr., Freq. Control"}
-
-
-
-communications
-@STRING{IEEE_J_COML       = "{IEEE} Commun. Lett."}
-@STRING{IEEE_J_JSAC       = "{IEEE} J. Sel. Areas Commun."}
-@STRING{IEEE_J_COM        = "{IEEE} Trans. Commun."}
-@STRING{IEEE_J_COMT       = "{IEEE} Trans. Commun. Technol."}
-@STRING{IEEE_J_WCOM       = "{IEEE} Trans. Wireless Commun."}
-@STRING{IEEE_J_WCOML      = "{IEEE} Wireless Commun. Lett."}
-
-
-
-components, packaging and manufacturing
-@STRING{IEEE_J_ADVP       = "{IEEE} Trans. Adv. Packag."}
-@STRING{IEEE_J_CHMT       = "{IEEE} Trans. Compon., Hybrids, Manuf. Technol."}
-in 2011 CAPT became CPMT
-@STRING{IEEE_J_CPMT       = "{IEEE} Trans. Compon. Packag. Manuf. Technol."}
-@STRING{IEEE_J_CPMTA      = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {A}"}
-@STRING{IEEE_J_CPMTB      = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {B}"}
-@STRING{IEEE_J_CPMTC      = "{IEEE} Trans. Compon., Packag., Manuf. Technol. {C}"}
-@STRING{IEEE_J_CAPTS      = "{IEEE} Trans. Compon. Packag. Technol."}
-@STRING{IEEE_J_CAPT       = "{IEEE} Trans. Compon. Packag. Technol."}
-@STRING{IEEE_J_CPART      = "{IEEE} Trans. Compon. Parts"}
-@STRING{IEEE_J_EPM        = "{IEEE} Trans. Electron. Packag. Manuf."}
-@STRING{IEEE_J_MFT        = "{IEEE} Trans. Manuf. Technol."}
-@STRING{IEEE_J_PHP        = "{IEEE} Trans. Parts, Hybrids, Packag."}
-@STRING{IEEE_J_PMP        = "{IEEE} Trans. Parts, Mater., Packag."}
-
-
-
-CAD
-@STRING{IEEE_J_TCAD       = "{IEEE} J. Technol. Comput. Aided Design"}
-@STRING{IEEE_J_CAD        = "{IEEE} Trans. Comput.-Aided Design Integr. Circuits Syst."}
-
-
-
-coding, data, information, knowledge
-@STRING{IEEE_J_BD         = "{IEEE} Trans. Big Data"}
-@STRING{IEEE_J_IFS        = "{IEEE} Trans. Inf. Forensics Security"}
-@STRING{IEEE_J_IT         = "{IEEE} Trans. Inf. Theory"}
-@STRING{IEEE_J_KDE        = "{IEEE} Trans. Knowl. Data Eng."}
-
-
-
-computers, computation, networking and software
-@STRING{IEEE_J_CAL        = "{IEEE} Comput. Archit. Lett."}
-@STRING{IEEE_J_ES         = "{IEEE} Embedded Syst. Lett."}
-@STRING{IEEE_J_IOT        = "{IEEE} Internet Things J."}
-@STRING{IEEE_J_XCDC       = "{IEEE} J. Explor. Solid-State Computat. Devices Circuits"}
-@STRING{IEEE_J_MMCT       = "{IEEE} J. Multiscale and Multiphys. Comput. Techn."}
-@STRING{IEEE_J_SUSC       = "{IEEE} Sustain. Comput."}
-@STRING{IEEE_J_CC         = "{IEEE} Trans. on Cloud Comput."}
-@STRING{IEEE_J_CSS        = "{IEEE} Trans. Comput. Social Syst."}
-@STRING{IEEE_J_C          = "{IEEE} Trans. Comput."}
-@STRING{IEEE_J_CNS        = "{IEEE} Trans. Control Netw. Syst."}
-@STRING{IEEE_J_DSC        = "{IEEE} Trans. Depend. Sec. Comput."}
-@STRING{IEEE_J_ECOMP      = "{IEEE} Trans. Electron. Comput."}
-@STRING{IEEE_J_ETC        = "{IEEE} Trans. Emerg. Topics Comput."}
-@STRING{IEEE_J_EVC        = "{IEEE} Trans. Evol. Comput."}
-@STRING{IEEE_J_FUZZ       = "{IEEE} Trans. Fuzzy Syst."}
-@STRING{IEEE_J_MC         = "{IEEE} Trans. Mobile Comput."}
-@STRING{IEEE_J_MSCS       = "{IEEE} Trans. Multi-Scale Comput. Syst."}
-@STRING{IEEE_J_NET        = "{IEEE/ACM} Trans. Netw."}
-@STRING{IEEE_J_NSE        = "{IEEE} Trans. Netw. Sci. Eng."}
-@STRING{IEEE_J_NSM        = "{IEEE} Trans. Netw. Service Manag."}
-@STRING{IEEE_J_NN         = "{IEEE} Trans. Neural Netw."}
-in 2012 NN became NNLS
-@STRING{IEEE_J_NNLS       = "{IEEE} Trans. Neural Netw. Learn. Syst."}
-@STRING{IEEE_J_PDS        = "{IEEE} Trans. Parallel Distrib. Syst."}
-@STRING{IEEE_J_SC         = "{IEEE} Trans. Serv. Comput."}
-@STRING{IEEE_J_SIPN       = "{IEEE} Trans. Signal Inf. Process. Netw."}
-@STRING{IEEE_J_SE         = "{IEEE} Trans. Softw. Eng."}
-
-
-
-computer graphics, imaging, and multimedia
-@STRING{IEEE_J_JDT        = "{IEEE/OSA} J. Display Technol."}
-@STRING{IEEE_J_IP         = "{IEEE} Trans. Image Process."}
-@STRING{IEEE_J_MM         = "{IEEE} Trans. Multimedia"}
-@STRING{IEEE_J_VCG        = "{IEEE} Trans. Vis. Comput. Graphics"}
-
-
-
-cybernetics, ergonomics, robots, man-machine, artificial intelligence and automation
-@STRING{IEEE_J_JAS        = "{IEEE/CAA} J. Autom. Sinica"}
-@STRING{IEEE_J_JRA        = "{IEEE} J. Robot. Autom."}
-@STRING{IEEE_J_AFFC       = "{IEEE} Trans. Affect. Comput."}
-@STRING{IEEE_J_ASE        = "{IEEE} Trans. Autom. Sci. Eng."}
-@STRING{IEEE_J_AMD        = "{IEEE} Trans. Auton. Mental Develop."}
-@STRING{IEEE_J_CCN        = "{IEEE} Trans. on Cogn. Commun. Netw."}
-in 2015 AMD became CDS
-@STRING{IEEE_J_CDS        = "{IEEE} Trans. Cogn. Develop. Syst."}
-@STRING{IEEE_J_CIAIG      = "{IEEE} Trans. Comput. Intell. {AI} in Games"}
-in 2013 SMCB became CYB
-@STRING{IEEE_J_CYB        = "{IEEE} Trans. Cybern."}
-@STRING{IEEE_J_H          = "{IEEE} Trans. Haptics"}
-@STRING{IEEE_J_HFE        = "{IEEE} Trans. Hum. Factors Electron."}
-in 2013 SMCC became HMS
-@STRING{IEEE_J_HMS        = "{IEEE} Trans. Human-Mach. Syst."}
-@STRING{IEEE_J_MMS        = "{IEEE} Trans. Man-Mach. Syst."}
-@STRING{IEEE_J_PAMI       = "{IEEE} Trans. Pattern Anal. Mach. Intell."}
-in 1989 JRA became RA
-in August 2004, RA split into ASE and RO
-@STRING{IEEE_J_RA         = "{IEEE} Trans. Robot. Autom."}
-@STRING{IEEE_J_RAL        = "{IEEE} Robot. Autom. Lett."}
-@STRING{IEEE_J_RO         = "{IEEE} Trans. Robot."}
-@STRING{IEEE_J_SMC        = "{IEEE} Trans. Syst., Man, Cybern."}
-@STRING{IEEE_J_SMCA       = "{IEEE} Trans. Syst., Man, Cybern. {A}"}
-@STRING{IEEE_J_SMCB       = "{IEEE} Trans. Syst., Man, Cybern. {B}"}
-@STRING{IEEE_J_SMCC       = "{IEEE} Trans. Syst., Man, Cybern. {C}"}
-in 2012 SMCA became SMCS
-@STRING{IEEE_J_SMCS       = "{IEEE} Trans. Syst., Man, Cybern., Syst."}
-@STRING{IEEE_J_SSC        = "{IEEE} Trans. Syst. Sci. Cybern."}
-
-
-
-earth, wind, fire and water
-@STRING{IEEE_J_GRSL       = "{IEEE} Geosci. Remote Sens. Lett."}
-@STRING{IEEE_J_GE         = "{IEEE} Trans. Geosci. Electron."}
-@STRING{IEEE_J_GRS        = "{IEEE} Trans. Geosci. Remote Sens."}
-@STRING{IEEE_J_OE         = "{IEEE} J. Ocean. Eng."}
-@STRING{IEEE_J_STARS      = "{IEEE} J. Sel. Topics Appl. Earth Observ. Remote Sens."}
-
-
-
-education, engineering, history, IEEE, professional
-@STRING{IEEE_J_CJECE      = "Canadian J. Elect. Comput. Eng."}
-@STRING{IEEE_J_PROC       = "Proc. {IEEE}"}
-@STRING{IEEE_J_RITA       = "{IEEE} Revista Iberoamericana de Technolog{\'{i}}as del Aprendizaje"}
-@STRING{IEEE_J_EDU        = "{IEEE} Trans. Educ."}
-@STRING{IEEE_J_EM         = "{IEEE} Trans. Eng. Manag."}
-@STRING{IEEE_J_EWS        = "{IEEE} Trans. Eng. Writing Speech"}
-@STRING{IEEE_J_LT         = "{IEEE} Trans. Learn. Technol."}
-@STRING{IEEE_J_PC         = "{IEEE} Trans. Prof. Commun."}
-
-
-
-electromagnetics, antennas, EMI, magnetics and microwave
-@STRING{IEEE_J_AWPL       = "{IEEE} Antennas Wireless Propag. Lett."}
-@STRING{IEEE_J_MAGL       = "{IEEE} Magn. Lett."}
-@STRING{IEEE_J_MGWL       = "{IEEE} Microw. Guided Wave Lett."}
-@STRING{IEEE_J_MWCL       = "{IEEE} Microw. Wireless Compon. Lett."}
-@STRING{IEEE_J_RFIC       = "{IEEE} {RFIC} J."}
-@STRING{IEEE_J_RFID       = "{IEEE} {RFID} J."}
-@STRING{IEEE_J_AP         = "{IEEE} Trans. Antennas Propag."}
-@STRING{IEEE_J_EMC        = "{IEEE} Trans. Electromagn. Compat."}
-@STRING{IEEE_J_MAG        = "{IEEE} Trans. Magn."}
-@STRING{IEEE_J_MTT        = "{IEEE} Trans. Microw. Theory Techn."}
-@STRING{IEEE_J_RFI        = "{IEEE} Trans. Radio Freq. Interference"}
-@STRING{IEEE_J_TTHZ       = "{IEEE} Trans. {THz} Sci. Technol."}
-@STRING{IEEE_J_TJMJ       = "{IEEE} Transl. J. Magn. Jpn."}
-
-
-
-energy, power and conversion
-@STRING{IEEE_J_PHOT       = "{IEEE} J. Photovolt."}
-@STRING{IEEE_J_PEL        = "{IEEE} Power Electron. Lett."}
-@STRING{IEEE_J_PETS       = "{IEEE} Power Energy Technol. Syst. J."}
-@STRING{IEEE_J_ESTPE      = "{IEEE} Trans. Emerg. Sel. Topics Power Electron."}
-@STRING{IEEE_J_EC         = "{IEEE} Trans. Energy Convers."}
-@STRING{IEEE_J_PWRAS      = "{IEEE} Trans. Power App. Syst."}
-@STRING{IEEE_J_PWRD       = "{IEEE} Trans. Power Del."}
-@STRING{IEEE_J_PWRE       = "{IEEE} Trans. Power Electron."}
-@STRING{IEEE_J_PWRS       = "{IEEE} Trans. Power Syst."}
-@STRING{IEEE_J_SG         = "{IEEE} Trans. Smart Grid"}
-@STRING{IEEE_J_STE        = "{IEEE} Trans. Sustain. Energy"}
-
-
-
-industrial, commercial and consumer
-@STRING{IEEE_J_PSE        = "{IEEE} J. Product Safety Eng."}
-@STRING{IEEE_J_APPIND     = "{IEEE} Trans. Appl. Ind."}
-@STRING{IEEE_J_BC         = "{IEEE} Trans. Broadcast."}
-@STRING{IEEE_J_BCTV       = "{IEEE} Trans. Broadcast Television Receivers"}
-@STRING{IEEE_J_CE         = "{IEEE} Trans. Consum. Electron."}
-@STRING{IEEE_J_IE         = "{IEEE} Trans. Ind. Electron."}
-@STRING{IEEE_J_IECI       = "{IEEE} Trans. Ind. Electron. Contr. Instrum."}
-@STRING{IEEE_J_IA         = "{IEEE} Trans. Ind. Appl."}
-@STRING{IEEE_J_IGA        = "{IEEE} Trans. Ind. Gen. Appl."}
-@STRING{IEEE_J_IINF       = "{IEEE} Trans. Ind. Informat."}
-
-
-
-instrumentation and measurement
-@STRING{IEEE_J_IM         = "{IEEE} Trans. Instrum. Meas."}
-
-
-
-insulation and materials
-@STRING{IEEE_J_JEM        = "{IEEE/TMS} J. Electron. Mater."}
-@STRING{IEEE_J_DEI        = "{IEEE} Trans. Dielectr. Electr. Insul."}
-@STRING{IEEE_J_EI         = "{IEEE} Trans. Electr. Insul."}
-
-
-
-mechanical
-@STRING{IEEE_J_MEMS       = "J. Microelectromech. Syst."}
-in 2014 MEMS became MEMSI
-@STRING{IEEE_J_MEMSI      = "J. Microelectromech. Syst."}
-@STRING{IEEE_J_MECH       = "{IEEE/ASME} Trans. Mechatronics"}
-
-
-
-medical and biological
-@STRING{IEEE_J_BHI        = "{IEEE} J. Biomed. Health Inform."}
-@STRING{IEEE_J_TEHM       = "{IEEE} J. Transl. Eng. Health Med."}
-@STRING{IEEE_J_LS         = "{IEEE} Life Sci. Lett."}
-@STRING{IEEE_J_RBME       = "{IEEE} Rev. Biomed. Eng."}
-@STRING{IEEE_J_BCAS       = "{IEEE} Trans. Biomed. Circuits Syst."}
-@STRING{IEEE_J_BMELC      = "{IEEE} Trans. Bio-Med. Electron."}
-B-ME later dropped the hyphen and became the BME
-@STRING{IEEE_J_BME        = "{IEEE} Trans. Biomed. Eng."}
-@STRING{IEEE_J_B-ME       = "{IEEE} Trans. Bio-Med. Eng."}
-@STRING{IEEE_J_CBB        = "{IEEE/ACM} Trans. Comput. Biol. Bioinformatics"}
-@STRING{IEEE_J_ITBM       = "{IEEE} Trans. Inf. Technol. Biomed."}
-@STRING{IEEE_J_ME         = "{IEEE} Trans. Med. Electron."}
-@STRING{IEEE_J_MI         = "{IEEE} Trans. Med. Imag."}
-@STRING{IEEE_J_MBSC       = "{IEEE} Trans. Mol. Biol. Multi-Scale Commun."}
-@STRING{IEEE_J_NB         = "{IEEE} Trans. Nanobiosci."}
-@STRING{IEEE_J_NSRE       = "{IEEE} Trans. Neural Syst. Rehabil. Eng."}
-@STRING{IEEE_J_RE         = "{IEEE} Trans. Rehabil. Eng."}
-
-
-
-optics, lightwave and photonics
-@STRING{IEEE_J_JLT        = "J. Lightw. Technol."}
-@STRING{IEEE_J_OCN        = "{IEEE} J. Opt. Commun. Netw."}
-@STRING{IEEE_J_PJ         = "{IEEE} Photon. J."}
-@STRING{IEEE_J_PTL        = "{IEEE} Photon. Technol. Lett."}
-
-
-
-physics, electrons, nanotechnology, nuclear and quantum electronics
-@STRING{IEEE_J_EDL        = "{IEEE} Electron Device Lett."}
-@STRING{IEEE_J_EDS        = "{IEEE} J. Electron Devices Soc."}
-@STRING{IEEE_J_JQE        = "{IEEE} J. Quantum Electron."}
-@STRING{IEEE_J_JSTQE      = "{IEEE} J. Sel. Topics Quantum Electron."}
-@STRING{IEEE_J_ENANO      = "{IEEE} Nanotechnol. Express"}
-@STRING{IEEE_J_ED         = "{IEEE} Trans. Electron Devices"}
-@STRING{IEEE_J_NANO       = "{IEEE} Trans. Nanotechnol."}
-@STRING{IEEE_J_NS         = "{IEEE} Trans. Nucl. Sci."}
-@STRING{IEEE_J_PS         = "{IEEE} Trans. Plasma Sci."}
-
-
-
-reliability
-@STRING{IEEE_J_DMR        = "{IEEE} Trans. Device Mater. Rel."}
-@STRING{IEEE_J_R          = "{IEEE} Trans. Rel."}
-
-
-
-semiconductors, superconductors, electrochemical and solid state
-@STRING{IEEE_J_ESSL       = "{IEEE/ECS} Electrochem. Solid-State Lett."}
-@STRING{IEEE_J_JSSC       = "{IEEE} J. Solid-State Circuits"}
-@STRING{IEEE_J_ASC        = "{IEEE} Trans. Appl. Supercond."}
-@STRING{IEEE_J_SM         = "{IEEE} Trans. Semicond. Manuf."}
-
-
-
-sensors
-@STRING{IEEE_J_SENSOR     = "{IEEE} Sensors J."}
-
-
-
-VLSI
-@STRING{IEEE_J_VLSI       = "{IEEE} Trans. {VLSI} Syst."}
-
-
-
-
-
-
-IEEE Magazines and Online Publications
-
-
-@STRING{IEEE_O_ACC        = "{IEEE} Access"}
-@STRING{IEEE_M_AES        = "{IEEE} Aerosp. Electron. Syst. Mag."}
-@STRING{IEEE_M_HIST       = "{IEEE} Ann. Hist. Comput."}
-@STRING{IEEE_M_AP         = "{IEEE} Antennas Propag. Mag."}
-@STRING{IEEE_M_ASSP       = "{IEEE} {ASSP} Mag."}
-@STRING{IEEE_M_CHINAC     = "China Commun."}
-@STRING{IEEE_M_CD         = "{IEEE} Circuits Devices Mag."}
-@STRING{IEEE_M_CAS        = "{IEEE} Circuits Syst. Mag."}
-@STRING{IEEE_M_COM        = "{IEEE} Commun. Mag."}
-@STRING{IEEE_M_COMSOC     = "{IEEE} Commun. Soc. Mag."}
-@STRING{IEEE_O_CSTO       = "{IEEE} Commun. Surveys Tuts."}
-@STRING{IEEE_M_CIM        = "{IEEE} Comput. Intell. Mag."}
-CSEM changed to CSE in 1999
-@STRING{IEEE_M_CSE        = "{IEEE} Comput. Sci. Eng."}
-@STRING{IEEE_M_CSEM       = "{IEEE} Comput. Sci. Eng. Mag."}
-@STRING{IEEE_M_C          = "Computer"}
-@STRING{IEEE_M_CAP        = "{IEEE} Comput. Appl. Power"}
-@STRING{IEEE_M_CGA        = "{IEEE} Comput. Graph. Appl."}
-@STRING{IEEE_M_CONC       = "{IEEE} Concurrency"}
-@STRING{IEEE_M_CS         = "{IEEE} Control Syst. Mag."}
-in 2012 DTC became DT
-@STRING{IEEE_M_DT         = "{IEEE} Des. Test"}
-@STRING{IEEE_M_DTC        = "{IEEE} Des. Test. Comput."}
-@STRING{IEEE_O_DSO        = "{IEEE} Distrib. Syst. Online"}
-@STRING{IEEE_M_EI         = "{IEEE} Electr. Insul. Mag."}
-@STRING{IEEE_M_ETF        = "{IEEE} Electrific. Mag."}
-@STRING{IEEE_M_EMC        = "{IEEE} Electromagn. Compat."}
-@STRING{IEEE_M_ETR        = "{IEEE} ElectroTechnol. Rev."}
-@STRING{IEEE_M_EMR        = "{IEEE} Eng. Manag. Rev."}
-@STRING{IEEE_M_EMB        = "{IEEE} Eng. Med. Biol. Mag."}
-@STRING{IEEE_M_EXP        = "{IEEE} Expert"}
-@STRING{IEEE_M_GRS        = "{IEEE} Geosci. Remote Sens. Mag."}
-@STRING{IEEE_M_IA         = "{IEEE} Ind. Appl. Mag."}
-@STRING{IEEE_M_IE         = "{IEEE} Ind. Electron. Mag."}
-@STRING{IEEE_M_IM         = "{IEEE} Instrum. Meas. Mag."}
-@STRING{IEEE_M_IS         = "{IEEE} Intell. Syst."}
-@STRING{IEEE_M_ITS        = "{IEEE} Intell. Transp. Syst. Mag."}
-@STRING{IEEE_M_IC         = "{IEEE} Internet Comput."}
-@STRING{IEEE_M_ITP        = "{IEEE} {IT} Prof."}
-@STRING{IEEE_M_MICRO      = "{IEEE} Micro"}
-@STRING{IEEE_M_MW         = "{IEEE} Microw. Mag."}
-@STRING{IEEE_M_MM         = "{IEEE} Multimedia"}
-@STRING{IEEE_M_NANO       = "{IEEE} Nanotechnol. Mag."}
-@STRING{IEEE_M_NET        = "{IEEE} Netw."}
-IEEE's editorial manual lists "Pers. Commun.", 
-but "Personal Commun. Mag." seems to be what is used in the journals
-@STRING{IEEE_M_PCOM       = "{IEEE} Personal Commun. Mag."}
-@STRING{IEEE_M_PVC        = "{IEEE} Pervasive Comput."}
-@STRING{IEEE_M_POT        = "{IEEE} Potentials"}
-@STRING{IEEE_M_PEL        = "{IEEE} Power Electron. Mag."}
-CAP and PER merged to form PE in 2003
-@STRING{IEEE_M_PE         = "{IEEE} Power Energy Mag."}
-@STRING{IEEE_M_PER        = "{IEEE} Power Eng. Rev."}
-@STRING{IEEE_M_PULSE      = "{IEEE} Pulse"}
-@STRING{IEEE_M_RA         = "{IEEE} Robot. Autom. Mag."}
-@STRING{IEEE_M_SAP        = "{IEEE} Security Privacy"}
-@STRING{IEEE_M_SP         = "{IEEE} Signal Process. Mag."}
-@STRING{IEEE_M_S          = "{IEEE} Softw."}
-@STRING{IEEE_M_SSC        = "{IEEE} Solid-State Circuits Mag."}
-@STRING{IEEE_M_SPECT      = "{IEEE} Spectr."}
-@STRING{IEEE_M_SMC        = "{IEEE} Syst., Man, Cybern. Mag."}
-@STRING{IEEE_M_TS         = "{IEEE} Technol. Soc. Mag."}
-@STRING{IEEE_M_VT         = "{IEEE} Veh. Technol. Mag."}
-@STRING{IEEE_M_WC         = "{IEEE} Wireless Commun."}
-@STRING{IEEE_M_TODAY      = "Today's Engineer"}
-
-
-
-
-
---
-EOF

From 81120b3f897b507c620dee1eda2468ce049b507d Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 16:54:05 +0100
Subject: [PATCH 08/31] Missing comma in description file

---
 DESCRIPTION | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index 75da3f406..b1660f39a 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -50,7 +50,7 @@ Authors@R: c(
   person("Matthias", "Templ", role = c("ctb"), email = "matthias.templ@gmail.com", comment = c(ORCID = "0000-0002-8638-5276", github = "matthias-da")),
   person("Alvaro", "Uzaheta", role = c("ctb"), email = "alvaro.uzaheta@gess.ethz.ch", comment = c(github = "auzaheta")),
   person("JooYoung", "Seo", role=c("ctb"), email="jseo1005@illinois.edu", comment = c(ORCID = "0000-0002-4064-6012")),
-  person("Karel", "Kroeze", role = c("ctb"), email = "karel.kroeze@gmail.com" comment = c(ORCID = "0000-0002-7000-7377", github = "karel-kroeze"))
+  person("Karel", "Kroeze", role = c("ctb"), email = "karel.kroeze@gmail.com", comment = c(ORCID = "0000-0002-7000-7377", github = "karel-kroeze"))
   )
 Description: A suite of custom R Markdown formats and templates for
   authoring journal articles and conference submissions.

From fe30daf4331d74a17723336f6f94ccf78263ae41 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 17:56:28 +0100
Subject: [PATCH 09/31] Add the number_section default logic in the R function

---
 R/ieee_article.R                                  | 15 +++++++++++++++
 .../templates/ieee/resources/template.tex         |  4 +---
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/R/ieee_article.R b/R/ieee_article.R
index 72114610a..f388f0e72 100644
--- a/R/ieee_article.R
+++ b/R/ieee_article.R
@@ -13,6 +13,9 @@
 #' `"draftcls"`, or `"draftclsnofoot"`.
 #' @param hyphenfixes A `character` value that provides the correct
 #' hyphenations for ambiguous words. Separate new words with spaces.
+#' @param journal Running Header to use for a journal paper. When set,
+#'   classoption `journal` will be used instead of `conference`.
+#'   `number_sections` will also default to `TRUE` in this case.
 #' @param IEEEspecialpaper  A `character` value containing the publication's
 #' special paper designation.
 #' @param with_ifpdf A `logical` value turning on (`TRUE`) or off
@@ -40,6 +43,7 @@
 ieee_article <- function(
   draftmode   = c("final", "draft", "draftcls", "draftclsnofoot"),
   hyphenfixes      = "op-tical net-works semi-conduc-tor",
+  journal = NULL,
   IEEEspecialpaper = "",
   with_ifpdf       = FALSE,
   with_cite        = FALSE,
@@ -51,6 +55,7 @@ ieee_article <- function(
   keep_tex         = TRUE,
   pandoc_args = NULL,
   md_extensions    = c("-autolink_bare_uris"),
+  number_sections = FALSE,
   ...
 ) {
 
@@ -61,6 +66,15 @@ ieee_article <- function(
 
   args <- c(args, "hyphenfixes" = hyphenfixes)
 
+
+  # Some check when journal mode is set
+  if (!is.null(journal)) {
+    # Add as Pandoc's variable
+    args <- c(args, "journal" = journal)
+    # activate number_section by default
+    if(missing(number_sections)) number_sections <- TRUE
+  }
+
   # Avoid declaration of pandoc variable if field is empty
   if (nchar(IEEEspecialpaper) > 1) {
     args <- c(args, "IEEEspecialpaper" = IEEEspecialpaper)
@@ -84,6 +98,7 @@ ieee_article <- function(
   pdf_document_format(
     "ieee", pandoc_args = c(pandoc_arg_list, pandoc_args),
     keep_tex = keep_tex, md_extensions = md_extensions,
+    number_sections = number_sections,
     ...
   )
 }
diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index 81921ed54..29356be2c 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -386,11 +386,9 @@
             breaklinks=true}
 \urlstyle{same}  % don't use monospace font for urls
 
-% Pandoc toggle for numbering sections (defaults to be off in conference, on in journal)
+% Pandoc toggle for numbering sections
 $if(numbersections)$
 \setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
-$elseif(journal)$
-\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
 $else$
 \setcounter{secnumdepth}{0}
 $endif$

From d73b061d8541ba887365b75e6a71b4c10635f6d5 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:02:11 +0100
Subject: [PATCH 10/31] Precise the message

---
 inst/rmarkdown/templates/ieee/resources/template.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index 29356be2c..b627c0c4d 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -461,7 +461,7 @@
   $if(affiliation.thanks)$$for(affiliation.thanks)$\thanks{$affiliation.thanks$}$endfor$$endif$
 }
 $else$
-$~$!!! Only 'affiliation.author' is supported for the journal mode.$~$
+$~$!!! Only 'affiliation.author' syntax is supported for the journal mode. Modify you YAML header accordingly.$~$
 $endif$
 
 \markboth{$journal$$~$, Vol. XX, No. X, XXXXXX 20XX$~$}%

From f9db267a4329d2cd1ec10bc72261cfbf2743afc3 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:13:50 +0100
Subject: [PATCH 11/31] Adapt skeleton to new journal mode toggling

---
 inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 3dcc87c11..57675aa70 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -1,13 +1,6 @@
 ---
 title: Bare Demo of IEEEtran.cls for IEEE Conferences & Journals
 
-## Either conference OR journal should be set;
-## for `conference` the value makes no difference, for `journal` you should set the
-## title of the journal you're publishing with, as it will be used in running headers.
-## if neither are set, the document defaults to conference mode.
-# conference: true
-journal: IEEE Transactions on Learning Technology ## specify journal for page headers
-
 affiliation:  
   ## use one only of the following
   # author-columnar: true         ## one column per author
@@ -116,7 +109,11 @@ link-citations: true
 bibliography: mybibfile.bib
 
 
-output: rticles::ieee_article
+output: 
+  rticles::ieee_article:
+    with_amsmath: true
+    ## Activate journal mode and specify journal for page headers
+    # journal: IEEE Transactions on Learning Technology 
 ---
 
 Introduction

From c5f4fb92f9122259a7fd9ea9b00c94ced514092c Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:17:34 +0100
Subject: [PATCH 12/31] Move variable definition in function as it is supported

---
 .../templates/ieee/skeleton/skeleton.Rmd       | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 57675aa70..9d5dc14a2 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -84,16 +84,6 @@ abstract: |
   The abstract goes here.
   On multiple lines eventually.
 
-# use some specific Tex packages if needed. 
-# with_ifpdf: true
-# with_cite: true
-# amsmath need to be true to use with bookdown for referencing equations.
-with_amsmath: true
-# with_algorithmic: true
-# with_array: true
-# with_dblfloatfix: true
-
-
 ## If you're using latex style \cite commands, choose the backend you want to use.
 # natbib: true
 # biblatex: true
@@ -114,6 +104,14 @@ output:
     with_amsmath: true
     ## Activate journal mode and specify journal for page headers
     # journal: IEEE Transactions on Learning Technology 
+    # use some specific Tex packages if needed. (see ?rticles::ieee_article())
+    # with_ifpdf: true
+    # with_cite: true
+    with_amsmath: true # amsmath need to be true to use with bookdown for referencing equations.
+    # with_algorithmic: true
+    # with_subfig: true
+    # with_array: true
+    # with_dblfloatfix: true
 ---
 
 Introduction

From 2580457cf6a6d65a33192a85fdf8040c4d170ed7 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:17:50 +0100
Subject: [PATCH 13/31] comment out journal mode only YAML param

---
 inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 9d5dc14a2..2f5673636 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -73,11 +73,11 @@ affiliation:
         - name: Roy Batty
           email: roy@replicant.offworld
 
-  # ## used only in journal mode for author affiliations and other acknowledgements
-  thanks:
-    - "E. Tyrell and R. Batty are with Starfleet Academy."
-    - "M. Shell was with the Department of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA, 30332 USA e-mail: (see http://www.michaelshell.org/contact.html)."
-    - "Manuscript received February 17, 2021; revised June 6, 2021."
+  ## used only in journal mode for author affiliations and other acknowledgements
+  # thanks:
+  #  - "E. Tyrell and R. Batty are with Starfleet Academy."
+  #  - "M. Shell was with the Department of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA, 30332 USA e-mail: (see http://www.michaelshell.org/contact.html)."
+  #  - "Manuscript received February 17, 2021; revised June 6, 2021."
 
 keywords: ["keyword 1", "keyword 2"]
 abstract: |

From c5e813dbdca60aaa8c92955099a752d6b7547c67 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:30:28 +0100
Subject: [PATCH 14/31] Use the CSL as url

---
 .../templates/ieee/skeleton/ieee.csl          | 400 ------------------
 .../templates/ieee/skeleton/skeleton.Rmd      |   5 +-
 2 files changed, 2 insertions(+), 403 deletions(-)
 delete mode 100644 inst/rmarkdown/templates/ieee/skeleton/ieee.csl

diff --git a/inst/rmarkdown/templates/ieee/skeleton/ieee.csl b/inst/rmarkdown/templates/ieee/skeleton/ieee.csl
deleted file mode 100644
index 0f6a06420..000000000
--- a/inst/rmarkdown/templates/ieee/skeleton/ieee.csl
+++ /dev/null
@@ -1,400 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only">
-  <info>
-    <title>IEEE</title>
-    <id>http://www.zotero.org/styles/ieee</id>
-    <link href="http://www.zotero.org/styles/ieee" rel="self"/>
-    <link href="https://ieeeauthorcenter.ieee.org/wp-content/uploads/IEEE-Reference-Guide.pdf" rel="documentation"/>
-    <link href="https://journals.ieeeauthorcenter.ieee.org/your-role-in-article-production/ieee-editorial-style-manual/" rel="documentation"/>
-    <author>
-      <name>Michael Berkowitz</name>
-      <email>mberkowi@gmu.edu</email>
-    </author>
-    <contributor>
-      <name>Julian Onions</name>
-      <email>julian.onions@gmail.com</email>
-    </contributor>
-    <contributor>
-      <name>Rintze Zelle</name>
-      <uri>http://twitter.com/rintzezelle</uri>
-    </contributor>
-    <contributor>
-      <name>Stephen Frank</name>
-      <uri>http://www.zotero.org/sfrank</uri>
-    </contributor>
-    <contributor>
-      <name>Sebastian Karcher</name>
-    </contributor>
-    <contributor>
-      <name>Giuseppe Silano</name>
-      <email>g.silano89@gmail.com</email>
-      <uri>http://giuseppesilano.net</uri>
-    </contributor>
-    <contributor>
-      <name>Patrick O'Brien</name>
-    </contributor>
-    <contributor>
-      <name>Brenton M. Wiernik</name>
-    </contributor>
-    <category citation-format="numeric"/>
-    <category field="engineering"/>
-    <category field="generic-base"/>
-    <summary>IEEE style as per the 2018 guidelines, V 11.12.2018.</summary>
-    <updated>2019-12-20T09:14:19+00:00</updated>
-    <rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
-  </info>
-  <locale xml:lang="en">
-    <terms>
-      <term name="chapter" form="short">ch.</term>
-      <term name="presented at">presented at the</term>
-      <term name="available at">available</term>
-    </terms>
-  </locale>
-  <!-- Macros -->
-  <macro name="status">
-    <choose>
-      <if variable="page issue volume" match="none">
-        <text variable="status" text-case="capitalize-first" suffix="" font-weight="bold"/>
-      </if>
-    </choose>
-  </macro>
-  <macro name="edition">
-    <choose>
-      <if type="bill book chapter graphic legal_case legislation motion_picture paper-conference report song" match="any">
-        <choose>
-          <if is-numeric="edition">
-            <group delimiter=" ">
-              <number variable="edition" form="ordinal"/>
-              <text term="edition" form="short"/>
-            </group>
-          </if>
-          <else>
-            <text variable="edition" text-case="capitalize-first" suffix="."/>
-          </else>
-        </choose>
-      </if>
-    </choose>
-  </macro>
-  <macro name="issued">
-    <choose>
-      <if type="article-journal report" match="any">
-        <date variable="issued">
-          <date-part name="month" form="short" suffix=" "/>
-          <date-part name="year" form="long"/>
-        </date>
-      </if>
-      <else-if type="bill book chapter graphic legal_case legislation motion_picture song thesis" match="any">
-        <date variable="issued">
-          <date-part name="year" form="long"/>
-        </date>
-      </else-if>
-      <else-if type="paper-conference" match="any">
-        <date variable="issued">
-          <date-part name="month" form="short"/>
-          <date-part name="year" prefix=" "/>
-        </date>
-      </else-if>
-      <else>
-        <date variable="issued">
-          <date-part name="month" form="short" suffix=" "/>
-          <date-part name="day" form="numeric-leading-zeros" suffix=", "/>
-          <date-part name="year"/>
-        </date>
-      </else>
-    </choose>
-  </macro>
-  <macro name="author">
-    <names variable="author">
-      <name and="text" et-al-min="7" et-al-use-first="1" initialize-with=". "/>
-      <label form="short" prefix=", " text-case="capitalize-first"/>
-      <et-al font-style="italic"/>
-      <substitute>
-        <names variable="editor"/>
-        <names variable="translator"/>
-      </substitute>
-    </names>
-  </macro>
-  <macro name="editor">
-    <names variable="editor">
-      <name initialize-with=". " delimiter=", " and="text"/>
-      <label form="short" prefix=", " text-case="capitalize-first"/>
-    </names>
-  </macro>
-  <macro name="locators">
-    <group delimiter=", ">
-      <text macro="edition"/>
-      <group delimiter=" ">
-        <text term="volume" form="short"/>
-        <number variable="volume" form="numeric"/>
-      </group>
-      <group delimiter=" ">
-        <number variable="number-of-volumes" form="numeric"/>
-        <text term="volume" form="short" plural="true"/>
-      </group>
-      <group delimiter=" ">
-        <text term="issue" form="short"/>
-        <number variable="issue" form="numeric"/>
-      </group>
-    </group>
-  </macro>
-  <macro name="title">
-    <choose>
-      <if type="bill book graphic legal_case legislation motion_picture song" match="any">
-        <text variable="title" font-style="italic"/>
-      </if>
-      <else>
-        <text variable="title" quotes="true"/>
-      </else>
-    </choose>
-  </macro>
-  <macro name="publisher">
-    <choose>
-      <if type="bill book chapter graphic legal_case legislation motion_picture paper-conference song" match="any">
-        <group delimiter=": ">
-          <text variable="publisher-place"/>
-          <text variable="publisher"/>
-        </group>
-      </if>
-      <else>
-        <group delimiter=", ">
-          <text variable="publisher"/>
-          <text variable="publisher-place"/>
-        </group>
-      </else>
-    </choose>
-  </macro>
-  <macro name="event">
-    <choose>
-      <if type="paper-conference speech" match="any">
-        <choose>
-          <!-- Published Conference Paper -->
-          <if variable="collection-editor editor editorial-director issue page volume" match="any">
-            <group delimiter=", ">
-              <group delimiter=" ">
-                <text term="in"/>
-                <text variable="container-title" font-style="italic"/>
-              </group>
-              <text variable="event-place"/>
-            </group>
-          </if>
-          <!-- Unpublished Conference Paper -->
-          <else>
-            <group delimiter=", ">
-              <group delimiter=" ">
-                <text term="presented at"/>
-                <text variable="event"/>
-              </group>
-              <text variable="event-place"/>
-            </group>
-          </else>
-        </choose>
-      </if>
-    </choose>
-  </macro>
-  <macro name="access">
-    <choose>
-      <if type="webpage post post-weblog" match="any">
-        <choose>
-          <if variable="URL">
-            <group delimiter=" ">
-              <text variable="URL"/>
-              <group delimiter=" " prefix="(" suffix=")">
-                <text term="accessed"/>
-                <date variable="accessed">
-                  <date-part name="month" form="short" strip-periods="false"/>
-                  <date-part name="day" form="numeric-leading-zeros" prefix=" " suffix=", "/>
-                  <date-part name="year" form="long"/>
-                </date>
-              </group>
-            </group>
-          </if>
-        </choose>
-      </if>
-      <else-if match="any" variable="DOI">
-        <text variable="DOI" prefix="doi: "/>
-      </else-if>
-      <else>
-        <group delimiter=". ">
-          <group delimiter=": ">
-            <text term="accessed" text-case="capitalize-first"/>
-            <date variable="accessed">
-              <date-part name="month" form="short" suffix=" "/>
-              <date-part name="day" form="numeric-leading-zeros" suffix=", "/>
-              <date-part name="year"/>
-            </date>
-          </group>
-          <text term="online" prefix="[" suffix="]" text-case="capitalize-first"/>
-          <group delimiter=": ">
-            <text term="available at" text-case="capitalize-first"/>
-            <text variable="URL"/>
-          </group>
-        </group>
-      </else>
-    </choose>
-  </macro>
-  <macro name="page">
-    <choose>
-      <if type="article-journal" variable="number" match="all">
-        <group delimiter=" ">
-          <text value="Art."/>
-          <text term="issue" form="short"/>
-          <text variable="number"/>
-        </group>
-      </if>
-      <else>
-        <group delimiter=" ">
-          <label variable="page" form="short"/>
-          <text variable="page"/>
-        </group>
-      </else>
-    </choose>
-  </macro>
-  <macro name="citation-locator">
-    <group delimiter=" ">
-      <choose>
-        <if locator="page">
-          <label variable="locator" form="short"/>
-        </if>
-        <else>
-          <label variable="locator" form="short" text-case="capitalize-first"/>
-        </else>
-      </choose>
-      <text variable="locator"/>
-    </group>
-  </macro>
-  <!-- Citation -->
-  <citation collapse="citation-number">
-    <sort>
-      <key variable="citation-number"/>
-    </sort>
-    <layout delimiter=", ">
-      <group prefix="[" suffix="]" delimiter=", ">
-        <text variable="citation-number"/>
-        <text macro="citation-locator"/>
-      </group>
-    </layout>
-  </citation>
-  <!-- Bibliography -->
-  <bibliography entry-spacing="0" second-field-align="flush">
-    <layout suffix=".">
-      <!-- Citation Number -->
-      <text variable="citation-number" prefix="[" suffix="]"/>
-      <!-- Author(s) -->
-      <text macro="author" suffix=", "/>
-      <!-- Rest of Citation -->
-      <choose>
-        <!-- Specific Formats -->
-        <if type="article-journal">
-          <group delimiter=", ">
-            <text macro="title"/>
-            <text variable="container-title" font-style="italic" form="short"/>
-            <text macro="locators"/>
-            <text macro="page"/>
-            <text macro="issued"/>
-            <text macro="status"/>
-            <text macro="access"/>
-          </group>
-        </if>
-        <else-if type="paper-conference speech" match="any">
-          <group delimiter=", ">
-            <text macro="title"/>
-            <text macro="event"/>
-            <text macro="issued"/>
-            <text macro="locators"/>
-            <text macro="page"/>
-            <text macro="status"/>
-            <text macro="access"/>
-          </group>
-        </else-if>
-        <else-if type="report">
-          <group delimiter=". ">
-            <group delimiter=", ">
-              <text macro="title"/>
-              <text macro="publisher"/>
-              <group delimiter=" ">
-                <text variable="genre"/>
-                <text variable="number"/>
-              </group>
-              <text macro="issued"/>
-            </group>
-            <text macro="access"/>
-          </group>
-        </else-if>
-        <else-if type="thesis">
-          <group delimiter=", ">
-            <text macro="title"/>
-            <text variable="genre"/>
-            <text macro="publisher"/>
-            <text macro="issued"/>
-          </group>
-        </else-if>
-        <else-if type="webpage post-weblog post" match="any">
-          <group delimiter=", " suffix=". ">
-            <text macro="title"/>
-            <text variable="container-title" font-style="italic"/>
-            <text macro="issued"/>
-          </group>
-          <text macro="access"/>
-        </else-if>
-        <else-if type="patent">
-          <group delimiter=", ">
-            <text macro="title"/>
-            <text variable="number"/>
-            <text macro="issued"/>
-          </group>
-        </else-if>
-        <!-- Generic/Fallback Formats -->
-        <else-if type="bill book graphic legal_case legislation motion_picture report song" match="any">
-          <group delimiter=", " suffix=". ">
-            <text macro="title"/>
-            <text macro="locators"/>
-          </group>
-          <group delimiter=", ">
-            <text macro="publisher"/>
-            <text macro="issued"/>
-            <text macro="page"/>
-          </group>
-        </else-if>
-        <else-if type="article-magazine article-newspaper broadcast interview manuscript map patent personal_communication song speech thesis webpage" match="any">
-          <group delimiter=", ">
-            <text macro="title"/>
-            <text variable="container-title" font-style="italic"/>
-            <text macro="locators"/>
-            <text macro="publisher"/>
-            <text macro="page"/>
-            <text macro="issued"/>
-          </group>
-        </else-if>
-        <else-if type="chapter paper-conference" match="any">
-          <group delimiter=", " suffix=", ">
-            <text macro="title"/>
-            <group delimiter=" ">
-              <text term="in"/>
-              <text variable="container-title" font-style="italic"/>
-            </group>
-            <text macro="locators"/>
-          </group>
-          <text macro="editor" suffix=" "/>
-          <group delimiter=", ">
-            <text macro="publisher"/>
-            <text macro="issued"/>
-            <text macro="page"/>
-          </group>
-        </else-if>
-        <else>
-          <group delimiter=", " suffix=". ">
-            <text macro="title"/>
-            <text variable="container-title" font-style="italic"/>
-            <text macro="locators"/>
-          </group>
-          <group delimiter=", ">
-            <text macro="publisher"/>
-            <text macro="page"/>
-            <text macro="issued"/>
-            <text macro="access"/>
-          </group>
-        </else>
-      </choose>
-    </layout>
-  </bibliography>
-</style>
diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 2f5673636..98d0c2522 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -89,10 +89,9 @@ abstract: |
 # biblatex: true
 # citation_sorting: none   ## used as sorting option of the biblatex package (if selected)
 
-## If you're using pandoc style @cite commands, these options set the correct
+## When using pandoc for citation processing (the default), these options set the correct
 ## citation style, and add links to citations. 
-## Note that this bypasses latex packages that alter citations, e.g. hyperref.
-citation-style: ieee
+csl: https://www.zotero.org/styles/ieee # download locally if needed.
 link-citations: true 
 
 ## bibliography file(s)

From a7020e53d24c08627b42b70a73ab69710e765202 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:31:02 +0100
Subject: [PATCH 15/31] Adapt the affiliation section

---
 inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 98d0c2522..ca7498ddb 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -2,9 +2,9 @@
 title: Bare Demo of IEEEtran.cls for IEEE Conferences & Journals
 
 affiliation:  
-  ## use one only of the following
+  ## use one only of the following - only relevant in conference mode and ignored in journal mode
   # author-columnar: true         ## one column per author
-  institution-columnar: true      ## one column per institution (multiple autors eventually)
+  institution-columnar: true      ## one column per institution (multiple authors eventually)
   # wide: true                    ## one column wide author/affiliation fields
 
   ## A custom author ordering field that breaks institution grouping. 
@@ -22,11 +22,11 @@ affiliation:
       mark: 4                    
       email: roy@replicant.offworld
       last: true                 ## mark the last author so that we can insert `and` 
-                                 ## at the appropriate place.
-                                 
+                                 ## at the appropriate place.                              
 
   ## Put authors in a given order, with multiline possibility. 
-  ## Authors cited in institution are ignored if exists
+  ## Authors cited in institution are ignored if exists.
+  ## Only relevant in conference mode.
   #author_multiline: 
   #  - line:         ## Create a new author line
   #    - name: Michael Shell

From 365ead0d10661e07c15cef3957c04353d0a12cbc Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:31:22 +0100
Subject: [PATCH 16/31] Show how to use the pandoc variable instead

---
 inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index ca7498ddb..fb9ca6e17 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -84,10 +84,8 @@ abstract: |
   The abstract goes here.
   On multiple lines eventually.
 
-## If you're using latex style \cite commands, choose the backend you want to use.
-# natbib: true
-# biblatex: true
-# citation_sorting: none   ## used as sorting option of the biblatex package (if selected)
+## Example of option for biblatex
+# biblatexoptions: sorting=none
 
 ## When using pandoc for citation processing (the default), these options set the correct
 ## citation style, and add links to citations. 

From 5bbead19acaebf2e8fc09433ab8f92805add523b Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:31:37 +0100
Subject: [PATCH 17/31] remove duplicate argument

---
 inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd | 1 -
 1 file changed, 1 deletion(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index fb9ca6e17..275083e18 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -98,7 +98,6 @@ bibliography: mybibfile.bib
 
 output: 
   rticles::ieee_article:
-    with_amsmath: true
     ## Activate journal mode and specify journal for page headers
     # journal: IEEE Transactions on Learning Technology 
     # use some specific Tex packages if needed. (see ?rticles::ieee_article())

From 74c7d69585d964bc49574ce8998d63aecd8243a7 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:32:14 +0100
Subject: [PATCH 18/31] Support biblatexoption in template

---
 inst/rmarkdown/templates/ieee/resources/template.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index b627c0c4d..997129415 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -339,7 +339,7 @@
 \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
 $endif$
 $if(biblatex)$
-\usepackage[backend=bibtex,citestyle=ieee,style=numeric$if(citation_sorting)$,sorting=$citation_sorting$$endif$]{biblatex}
+\usepackage[backend=bibtex,citestyle=ieee,style=$if(biblio-style)$$biblio-style$$else$numeric$endif$,if(citation_sorting)$sorting=$citation_sorting$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
 $if(bibliography)$
 $for(bibliography)$
 \addbibresource{$bibliography$}

From b68819a36072f6916f5ecdd5a5221603a5ae21c6 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:33:09 +0100
Subject: [PATCH 19/31] Support citation_package explicitly

---
 R/ieee_article.R | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/R/ieee_article.R b/R/ieee_article.R
index f388f0e72..728f91e6f 100644
--- a/R/ieee_article.R
+++ b/R/ieee_article.R
@@ -54,6 +54,7 @@ ieee_article <- function(
   with_dblfloatfix = FALSE,
   keep_tex         = TRUE,
   pandoc_args = NULL,
+  citation_package = "default",
   md_extensions    = c("-autolink_bare_uris"),
   number_sections = FALSE,
   ...
@@ -98,7 +99,7 @@ ieee_article <- function(
   pdf_document_format(
     "ieee", pandoc_args = c(pandoc_arg_list, pandoc_args),
     keep_tex = keep_tex, md_extensions = md_extensions,
-    number_sections = number_sections,
+    number_sections = number_sections, citation_package = citation_package,
     ...
   )
 }

From ef6e88160f1a867ed80816bd6eb856c5475c3d99 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:33:31 +0100
Subject: [PATCH 20/31] Prevent pandoc error early regarding template syntax

---
 R/ieee_article.R | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/R/ieee_article.R b/R/ieee_article.R
index 728f91e6f..b477b152a 100644
--- a/R/ieee_article.R
+++ b/R/ieee_article.R
@@ -74,6 +74,10 @@ ieee_article <- function(
     args <- c(args, "journal" = journal)
     # activate number_section by default
     if(missing(number_sections)) number_sections <- TRUE
+    # New author syntax needs to be used which requires a recent pandoc
+    if (rmarkdown::pandoc_available("2.10")) {
+      stop("Using `journal` mode for `ieee_article()` requires Pandoc >= 2.10", call. = FALSE)
+    }
   }
 
   # Avoid declaration of pandoc variable if field is empty

From fe37892aad6639e3857aa54663d32dbde81c4cd0 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:33:46 +0100
Subject: [PATCH 21/31] remove empty line

---
 inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd | 1 -
 1 file changed, 1 deletion(-)

diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index 275083e18..bdd630ec8 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -95,7 +95,6 @@ link-citations: true
 ## bibliography file(s)
 bibliography: mybibfile.bib
 
-
 output: 
   rticles::ieee_article:
     ## Activate journal mode and specify journal for page headers

From bdde76c3bd21c456265fc35b295b9015c1081a32 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:36:20 +0100
Subject: [PATCH 22/31] Update documentation

---
 man/ieee_article.Rd | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/man/ieee_article.Rd b/man/ieee_article.Rd
index 2b2f69cad..55752d7b2 100644
--- a/man/ieee_article.Rd
+++ b/man/ieee_article.Rd
@@ -7,6 +7,7 @@
 ieee_article(
   draftmode = c("final", "draft", "draftcls", "draftclsnofoot"),
   hyphenfixes = "op-tical net-works semi-conduc-tor",
+  journal = NULL,
   IEEEspecialpaper = "",
   with_ifpdf = FALSE,
   with_cite = FALSE,
@@ -17,7 +18,9 @@ ieee_article(
   with_dblfloatfix = FALSE,
   keep_tex = TRUE,
   pandoc_args = NULL,
+  citation_package = "default",
   md_extensions = c("-autolink_bare_uris"),
+  number_sections = FALSE,
   ...
 )
 }
@@ -29,6 +32,10 @@ should be rendered. Valid options are: \code{"final"} (default), \code{"draft"},
 \item{hyphenfixes}{A \code{character} value that provides the correct
 hyphenations for ambiguous words. Separate new words with spaces.}
 
+\item{journal}{Running Header to use for a journal paper. When set,
+classoption \code{journal} will be used instead of \code{conference}.
+\code{number_sections} will also default to \code{TRUE} in this case.}
+
 \item{IEEEspecialpaper}{A \code{character} value containing the publication's
 special paper designation.}
 
@@ -57,10 +64,17 @@ off (\code{FALSE}) the \code{dblfloatfix} LaTeX package.}
 
 \item{pandoc_args}{Additional command line options to pass to pandoc}
 
+\item{citation_package}{The LaTeX package to process citations, \code{natbib}
+or \code{biblatex}. Use \code{default} if neither package is to be used,
+which means citations will be processed via the command
+\command{pandoc-citeproc}.}
+
 \item{md_extensions}{Markdown extensions to be added or removed from the
 default definition or R Markdown. See the \code{\link[rmarkdown]{rmarkdown_format}} for
 additional details.}
 
+\item{number_sections}{\code{TRUE} to number section headings}
+
 \item{...}{Additional arguments to \code{\link[rmarkdown:pdf_document]{rmarkdown::pdf_document()}}}
 }
 \description{

From 5205bffed72089d392969c5d8bbf49fb46f0e42d Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 18:41:30 +0100
Subject: [PATCH 23/31] Update CSL ref part in template

---
 inst/rmarkdown/templates/ieee/resources/template.tex | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index 997129415..31c5f31be 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -414,11 +414,12 @@
  {% don't indent paragraphs
   \setlength{\parindent}{0pt}
   % turn on hanging indent if param 1 is 1
-  \ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi
-  % set entry spacing
-  \ifnum #2 > 0
-  \setlength{\parskip}{#2\baselineskip}
+  \ifodd #1
+  \let\oldpar\par
+  \def\par{\hangindent=\cslhangindent\oldpar}
   \fi
+  % set entry spacing
+  \setlength{\parskip}{#2\cslentryspacingunit}
  }%
  {}
 \usepackage{calc} % for calculating minipage widths

From e44e93de0249ce97fd3f2a92e574cce320239bd3 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 19:01:27 +0100
Subject: [PATCH 24/31] missing $ in template

---
 inst/rmarkdown/templates/ieee/resources/template.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index 31c5f31be..67fcbaba1 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -339,7 +339,7 @@
 \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
 $endif$
 $if(biblatex)$
-\usepackage[backend=bibtex,citestyle=ieee,style=$if(biblio-style)$$biblio-style$$else$numeric$endif$,if(citation_sorting)$sorting=$citation_sorting$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
+\usepackage[backend=bibtex,citestyle=ieee,style=$if(biblio-style)$$biblio-style$$else$numeric$endif$,$if(citation_sorting)$sorting=$citation_sorting$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
 $if(bibliography)$
 $for(bibliography)$
 \addbibresource{$bibliography$}

From 4965d546a089ae0f8c570316112a734a1dc5af6b Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 19:12:53 +0100
Subject: [PATCH 25/31] Missing command in template

---
 inst/rmarkdown/templates/ieee/resources/template.tex | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/inst/rmarkdown/templates/ieee/resources/template.tex b/inst/rmarkdown/templates/ieee/resources/template.tex
index 67fcbaba1..a52008bc6 100644
--- a/inst/rmarkdown/templates/ieee/resources/template.tex
+++ b/inst/rmarkdown/templates/ieee/resources/template.tex
@@ -410,6 +410,8 @@
   \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces$endif$}%
   {\par}
 % For Pandoc 2.11+
+\newlength{\cslentryspacingunit} % times entry-spacing
+\setlength{\cslentryspacingunit}{\parskip}
 \newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing
  {% don't indent paragraphs
   \setlength{\parindent}{0pt}

From 5d5d9c55f17dd400fe02db85a435257a7ce047ba Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 20:34:46 +0100
Subject: [PATCH 26/31] Missing the negation in test

---
 R/ieee_article.R | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/R/ieee_article.R b/R/ieee_article.R
index b477b152a..dadf2dd5c 100644
--- a/R/ieee_article.R
+++ b/R/ieee_article.R
@@ -75,7 +75,7 @@ ieee_article <- function(
     # activate number_section by default
     if(missing(number_sections)) number_sections <- TRUE
     # New author syntax needs to be used which requires a recent pandoc
-    if (rmarkdown::pandoc_available("2.10")) {
+    if (!rmarkdown::pandoc_available("2.10")) {
       stop("Using `journal` mode for `ieee_article()` requires Pandoc >= 2.10", call. = FALSE)
     }
   }

From 52765e0e57d23d32861fae29cefd08127f092dc0 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 20:45:10 +0100
Subject: [PATCH 27/31] Add an example specific for Journal output in the
 template bundle

---
 .../ieee/skeleton/IEEE-journal-example.Rmd    | 181 ++++++++++++++++++
 .../templates/ieee/skeleton/skeleton.Rmd      |   2 +-
 2 files changed, 182 insertions(+), 1 deletion(-)
 create mode 100644 inst/rmarkdown/templates/ieee/skeleton/IEEE-journal-example.Rmd

diff --git a/inst/rmarkdown/templates/ieee/skeleton/IEEE-journal-example.Rmd b/inst/rmarkdown/templates/ieee/skeleton/IEEE-journal-example.Rmd
new file mode 100644
index 000000000..8bfa51101
--- /dev/null
+++ b/inst/rmarkdown/templates/ieee/skeleton/IEEE-journal-example.Rmd
@@ -0,0 +1,181 @@
+---
+title: Bare Demo of IEEEtran.cls for IEEE Conferences & Journals
+affiliation:  
+  ## A custom author ordering field that breaks institution grouping. 
+  ## This is the only supported format for the journal mode.
+  author:                       
+    - name: Eldon Tyrell
+      member: Member, IEEE       ## only used for journal mode
+      mark: 4                    ## ignored for journal mode
+      email: eldon@starfleet-academy.star
+    - name: Michael Shell
+      member: Fellow, OSA        
+      mark: 1                    
+    - name: Roy Batty
+      member: Life Fellow, IEEE  
+      mark: 4                    
+      email: roy@replicant.offworld
+      last: true                 ## mark the last author so that we can insert `and` 
+                                 ## at the appropriate place.                              
+  ## used only in journal mode for author affiliations and other acknowledgements
+  thanks:
+   - "E. Tyrell and R. Batty are with Starfleet Academy."
+   - "M. Shell was with the Department of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA, 30332 USA e-mail: (see http://www.michaelshell.org/contact.html)."
+   - "Manuscript received February 17, 2021; revised June 6, 2021."
+keywords: ["keyword 1", "keyword 2"]
+abstract: |
+  The abstract goes here.
+  On multiple lines eventually.
+## Example of option for biblatex
+# biblatexoptions: sorting=none
+## When using pandoc for citation processing (the default), these options set the correct
+## citation style, and add links to citations. 
+csl: https://www.zotero.org/styles/ieee # download locally if needed.
+link-citations: true 
+## bibliography file(s)
+bibliography: mybibfile.bib
+output: 
+  rticles::ieee_article:
+    ## Activate journal mode and specify journal for page headers
+    journal: IEEE Transactions on Learning Technology
+    # use some specific Tex packages if needed. (see ?rticles::ieee_article())
+    # with_ifpdf: true
+    # with_cite: true
+    with_amsmath: true # amsmath need to be true to use with bookdown for referencing equations.
+    # with_algorithmic: true
+    # with_subfig: true
+    # with_array: true
+    # with_dblfloatfix: true
+---
+
+Introduction
+=============
+<!-- no \IEEEPARstart -->
+\IEEEPARstart{T}{his} demo file is intended to serve as a ``starter file''
+for IEEE conference papers produced under \LaTeX\ using
+IEEEtran.cls version 1.8b and later.
+<!-- You must have at least 2 lines in the paragraph with the drop letter
+(should never be an issue) -->
+I wish you the best of success.
+
+
+## Subsection Heading Here
+Subsection text here.
+
+### Subsubsection Heading Here
+Subsubsection text here.
+
+<!-- An example of a floating figure using the graphicx package.
+Note that \label must occur AFTER (or within) \caption.
+For figures, \caption should occur after the \includegraphics.
+Note that IEEEtran v1.7 and later has special internal code that
+is designed to preserve the operation of \label within \caption
+even when the captionsoff option is in effect. However, because
+of issues like this, it may be the safest practice to put all your
+\label just after \caption rather than within \caption{}.
+
+Reminder: the "draftcls" or "draftclsnofoot", not "draft", class
+option should be used if it is desired that the figures are to be
+displayed while in draft mode.
+
+\begin{figure}[!t]
+\centering
+\includegraphics[width=2.5in]{myfigure}
+where an .eps filename suffix will be assumed under latex, 
+and a .pdf suffix will be assumed for pdflatex; or what has been declared
+via \DeclareGraphicsExtensions.
+\caption{Simulation results for the network.}
+\label{fig_sim}
+\end{figure}
+
+Note that the IEEE typically puts floats only at the top, even when this
+results in a large percentage of a column being occupied by floats.
+
+
+An example of a double column floating figure using two subfigures.
+(The subfig.sty package must be loaded for this to work.)
+The subfigure \label commands are set within each subfloat command,
+and the \label for the overall figure must come after \caption.
+\hfil is used as a separator to get equal spacing.
+Watch out that the combined width of all the subfigures on a 
+line do not exceed the text width or a line break will occur.
+
+\begin{figure*}[!t]
+\centering
+\subfloat[Case I]{\includegraphics[width=2.5in]{box}%
+\label{fig_first_case}}
+\hfil
+\subfloat[Case II]{\includegraphics[width=2.5in]{box}%
+\label{fig_second_case}}
+\caption{Simulation results for the network.}
+\label{fig_sim}
+\end{figure*}
+
+Note that often IEEE papers with subfigures do not employ subfigure
+captions (using the optional argument to \subfloat[]), but instead will
+reference/describe all of them (a), (b), etc., within the main caption.
+Be aware that for subfig.sty to generate the (a), (b), etc., subfigure
+labels, the optional argument to \subfloat must be present. If a
+subcaption is not desired, just leave its contents blank,
+e.g., \subfloat[].
+
+
+An example of a floating table. Note that, for IEEE style tables, the
+\caption command should come BEFORE the table and, given that table
+captions serve much like titles, are usually capitalized except for words
+such as a, an, and, as, at, but, by, for, in, nor, of, on, or, the, to
+and up, which are usually not capitalized unless they are the first or
+last word of the caption. Table text will default to \footnotesize as
+the IEEE normally uses this smaller font for tables.
+The \label must come after \caption as always.
+
+\begin{table}[!t]
+% increase table row spacing, adjust to taste
+\renewcommand{\arraystretch}{1.3}
+if using array.sty, it might be a good idea to tweak the value of
+\extrarowheight as needed to properly center the text within the cells
+\caption{An Example of a Table}
+\label{table_example}
+\centering
+% Some packages, such as MDW tools, offer better commands for making tables
+% than the plain LaTeX2e tabular which is used here.
+\begin{tabular}{|c||c|}
+\hline
+One & Two\\
+\hline
+Three & Four\\
+\hline
+\end{tabular}
+\end{table}
+
+
+Note that the IEEE does not put floats in the very first column
+- or typically anywhere on the first page for that matter. Also,
+in-text middle ("here") positioning is typically not used, but it
+is allowed and encouraged for Computer Society conferences (but
+not Computer Society journals). Most IEEE journals/conferences use
+top floats exclusively. 
+Note that, LaTeX2e, unlike IEEE journals/conferences, places
+footnotes above bottom floats. This can be corrected via the
+\fnbelowfloat command of the stfloats package. -->
+
+
+Conclusion
+============
+The conclusion goes here.
+
+<!-- conference papers do not normally have an appendix -->
+
+Acknowledgment {#acknowledgment}
+==============
+
+The authors would like to thank...
+
+Bibliography styles
+===================
+
+Here are two sample references: @Feynman1963118 [@Dirac1953888].
+
+\newpage
+References {#references .numbered}
+==========
diff --git a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
index bdd630ec8..6541a1a98 100644
--- a/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
+++ b/inst/rmarkdown/templates/ieee/skeleton/skeleton.Rmd
@@ -112,7 +112,7 @@ output:
 Introduction
 =============
 <!-- no \IEEEPARstart -->
-\IEEEPARstart{T}{his} demo file is intended to serve as a ``starter file''
+This demo file is intended to serve as a ``starter file''
 for IEEE conference papers produced under \LaTeX\ using
 IEEEtran.cls version 1.8b and later.
 <!-- You must have at least 2 lines in the paragraph with the drop letter

From 0315917b36250d7b583e186d230fa3f0b2d4cc64 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 20:52:40 +0100
Subject: [PATCH 28/31] Add special case for testing other demo file in bundle

---
 tests/testit/test-formats.R | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/tests/testit/test-formats.R b/tests/testit/test-formats.R
index 1313ce929..c6c9caf9f 100644
--- a/tests/testit/test-formats.R
+++ b/tests/testit/test-formats.R
@@ -1,4 +1,4 @@
-test_format <- function(name, output_options = NULL, os_skip = NULL) {
+test_format <- function(name, input = NULL, output_options = NULL, os_skip = NULL) {
 
   # don't run on CRAN due to complicated dependencies (Pandoc/LaTeX packages)
   if (!identical(Sys.getenv("NOT_CRAN"), "true")) return()
@@ -18,8 +18,12 @@ test_format <- function(name, output_options = NULL, os_skip = NULL) {
     create_dir = FALSE, edit = FALSE
   )
 
+  # override the render file if input is provided
+  if (!is.null(input)) testdoc <- input
+
   message('Rendering the ', name, ' format...',
-          if(!is.null(output_options)) " (with output options)")
+          if(!is.null(output_options)) " (with output options)",
+          if (!is.null(input)) c(" using file ", input))
   output_file <- rmarkdown::render(testdoc, output_options = output_options, quiet = TRUE)
   assert(paste(name, "format works"), {
     file.exists(output_file)
@@ -72,3 +76,9 @@ test_format("trb")
 # special case: the glossa format doesn't work with the microtype package
 tinytex::tlmgr_remove("microtype")
 test_format("glossa")
+
+# Multiple demo file
+if (rmarkdown::pandoc_available(2.10)) {
+  test_format("ieee", input = "IEEE-journal-example.Rmd",
+              output_options = list(journal = "IEEE Transactions on Learning Technology"))
+}

From 097e2d000c91e7881886c87e9a83cb8578da48a3 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 21:09:43 +0100
Subject: [PATCH 29/31] Update requirement as template requires 2.8

because using breakable spaces $~$
---
 R/ieee_article.R            | 6 ++++++
 man/ieee_article.Rd         | 4 ++++
 tests/testit/test-formats.R | 4 ++--
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/R/ieee_article.R b/R/ieee_article.R
index dadf2dd5c..13458d097 100644
--- a/R/ieee_article.R
+++ b/R/ieee_article.R
@@ -7,6 +7,10 @@
 #' `IEEEtran.cls` is supported, with experimental support for the
 #' `"journal"` mode.
 #'
+#' # Pandoc requirement
+#'
+#' This format requires at least Pandoc 2.8 and 2.10 when `journal` is used.
+#'
 #' @inheritParams rmarkdown::pdf_document
 #' @param draftmode Specify the draft mode to control spacing and whether images
 #' should be rendered. Valid options are: `"final"` (default), `"draft"`,
@@ -60,6 +64,8 @@ ieee_article <- function(
   ...
 ) {
 
+  rmarkdown::pandoc_available("2.8", error = TRUE)
+
   args <- c()
 
   draftmode <- match.arg(draftmode)
diff --git a/man/ieee_article.Rd b/man/ieee_article.Rd
index 55752d7b2..79ad5a95f 100644
--- a/man/ieee_article.Rd
+++ b/man/ieee_article.Rd
@@ -86,6 +86,10 @@ Presently, only the \code{"conference"} paper mode offered by the
 \code{IEEEtran.cls} is supported, with experimental support for the
 \code{"journal"} mode.
 }
+\section{Pandoc requirement}{
+This format requires at least Pandoc 2.8 and 2.10 when \code{journal} is used.
+}
+
 \references{
 Shell, Michael. "How to use the IEEEtran LATEX class." Journal of LATEX Class
 Files 1.11 (2002): 10-20.
diff --git a/tests/testit/test-formats.R b/tests/testit/test-formats.R
index c6c9caf9f..edbb02972 100644
--- a/tests/testit/test-formats.R
+++ b/tests/testit/test-formats.R
@@ -49,7 +49,7 @@ test_format("copernicus")
 if (xfun::is_linux()) test_format("ctex") # only on linux due to fonts requirements
 test_format("elsevier")
 test_format("frontiers")
-test_format("ieee")
+if (rmarkdown::pandoc_available(2.8)) test_format("ieee")
 test_format("ims")
 test_format("ims", output_options = list(journal = "aap"))
 test_format("jasa")
@@ -77,7 +77,7 @@ test_format("trb")
 tinytex::tlmgr_remove("microtype")
 test_format("glossa")
 
-# Multiple demo file
+# Multiple demo files
 if (rmarkdown::pandoc_available(2.10)) {
   test_format("ieee", input = "IEEE-journal-example.Rmd",
               output_options = list(journal = "IEEE Transactions on Learning Technology"))

From baeb407eb8278065d42099b7e36f6df4aa62d511 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Mon, 29 Nov 2021 21:22:20 +0100
Subject: [PATCH 30/31] Use character version in pandoc_available()

---
 tests/testit/test-formats.R | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/testit/test-formats.R b/tests/testit/test-formats.R
index edbb02972..fd4e88ba6 100644
--- a/tests/testit/test-formats.R
+++ b/tests/testit/test-formats.R
@@ -78,7 +78,7 @@ tinytex::tlmgr_remove("microtype")
 test_format("glossa")
 
 # Multiple demo files
-if (rmarkdown::pandoc_available(2.10)) {
+if (rmarkdown::pandoc_available("2.10")) {
   test_format("ieee", input = "IEEE-journal-example.Rmd",
               output_options = list(journal = "IEEE Transactions on Learning Technology"))
 }

From 54e8118278cce7edb3e714089586f270075df910 Mon Sep 17 00:00:00 2001
From: Christophe Dervieux <christophe.dervieux@gmail.com>
Date: Tue, 30 Nov 2021 10:35:00 +0100
Subject: [PATCH 31/31] Update NEWS and bump version

[skip ci]
---
 DESCRIPTION | 2 +-
 NEWS.md     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/DESCRIPTION b/DESCRIPTION
index b1660f39a..8a1ceafc4 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
 Package: rticles
 Type: Package
 Title: Article Formats for R Markdown
-Version: 0.21.3
+Version: 0.21.4
 Authors@R: c(
   person("JJ", "Allaire", role = "aut", email = "jj@rstudio.com"),
   person("Yihui", "Xie", role = c("aut", "cre"), email = "xie@yihui.name", comment = c(ORCID = "0000-0003-0645-5666")),
diff --git a/NEWS.md b/NEWS.md
index de11f15b1..6bebd39b3 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -6,7 +6,7 @@
 
 - Add `trb_article()` for annual meeting submissions to the Transportation Research Board Annual Meeting (thanks, @gregmacfarlane, #427).
 
-- `ieee_article()` now supports both conference papers and journal articles (thanks, @Karel-Kroeze, #375). 
+- `ieee_article()` now supports journal articles with different defaults, using `journal` classoption for `IEEEtran` document class. This brings a pandoc minimum requirement of 2.8 for conference paper and 2.10 for journal article. A new demo Rmd file has been added in the bundle when creating the template for `ieee_article()` - see this file and help page for new argument and syntax (thanks, @Karel-Kroeze, #375). 
 
 # rticles 0.21