first commit

This commit is contained in:
Valère Plantevin
2026-04-18 20:00:07 -04:00
commit b37e65cc2a
50 changed files with 11372 additions and 0 deletions

22
.gitignore vendored Normal file
View File

@@ -0,0 +1,22 @@
.Rproj
.Rproj.user
.Rhistory
.RData
.Ruserdata
/.luarc.json
quarto-ieee.Rproj
IEEEtran.cls
README.html
#template_files/
#template.tex
#template.html
#template.pdf
examples/*.html
examples/*.pdf
examples/*.tex
examples/*_files/
/.quarto/
_freeze/

View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
title: IEEE Transaction
author: David Folio
version: 1.1.0
quarto-required: ">=1.3.0"
contributes:
formats:
common:
number-sections: true
shortcodes:
- fancy-text
filters:
- latex-environment
- ieee.lua
environments:
- IEEEbiography
- IEEEbiographynophoto
commands:
- IEEEPARstart
- appendix
crossref:
chapters: false
eq-prefix:
eq-labels: (roman)
fig-title: Fig.
fig-prefix: Fig.
cite-method: citeproc
csl: ieee-with-url.csl
#cite-method: biblatex
link-citations: true
execute:
echo: false
warning: false
freeze: true
pdf:
pdf-engine: pdflatex
keep-tex: true
toc: false
df-print: kable
latex-auto-install: true
template: ieee-template.tex
template-partials:
- partials/doc-class.tex
- partials/title.tex
- partials/author.tex
- partials/affiliation.tex
- partials/before-body.tex
- partials/before-body.tex
- partials/before-bib.tex
- partials/after-body.tex
header-includes: |
\usepackage{physics}
\usepackage[version=3]{mhchem}
\usepackage{orcidlink}
\usepackage{float}
\floatplacement{table}{htb}
html:
toc: true
toc-location: left
toc-title: "Document Sections"
code-fold: true
theme:
- styles.scss
template: partials/ieee-template.html
template-partials:
- partials/title-block.html
- partials/title-metadata.html
- partials/author.html
- partials/after-body.html
- partials/affiliation.tex
include-in-header: partials/mathjax.html
html-math-method:
method: mathjax
date-format: "D MMMM YYYY"
google-scholar: true
refs: |
::: {#refs}
:::

View File

@@ -0,0 +1,7 @@
title: Fancy Text
author: Posit Software, PBC
version: 1.1.1
quarto-required: ">=1.2.198"
contributes:
shortcodes:
- fancy-text.lua

View File

@@ -0,0 +1,78 @@
-- shortcode that provides a nicely formatted 'LaTeX' string
function latex()
if quarto.doc.is_format("pdf") then
return pandoc.RawBlock('tex', '{\\LaTeX}')
elseif quarto.doc.is_format("html") then
return pandoc.Math('InlineMath', "\\LaTeX")
else
return pandoc.Span('LaTeX')
end
end
function tex()
if quarto.doc.is_format("pdf") then
return pandoc.RawBlock('tex', '{\\TeX}')
elseif quarto.doc.is_format("html") then
return pandoc.Math('InlineMath', "\\TeX")
else
return pandoc.Span('TeX')
end
end
-- shortcode that provides a nicely formatted 'bibtex' string
function bibtex()
if quarto.doc.is_format("pdf") then
return pandoc.RawBlock('tex', '\\textsc{Bib}{\\TeX}')
elseif quarto.doc.is_format("html") then
return pandoc.RawBlock('html', '<span style="font-variant: small-caps;">Bib</span><span style="letter-spacing:-2px;">T</span><sub style="font-size: inherit; letter-spacing:-1px;">E</sub>X')
else
return pandoc.Span('BibTeX')
end
end
function ldots()
if quarto.doc.is_format("pdf") then
return pandoc.RawBlock('tex', '\\ldots')
elseif quarto.doc.is_format("html") then
return pandoc.RawBlock('html', '&#8230;')
else
return "..."
end
end
function vdots()
if quarto.doc.is_format("pdf") then
return pandoc.Math('InlineMath', "\\vdots")
elseif quarto.doc.is_format("html") then
return pandoc.RawBlock('html', '&#8942;')
else
return "..."
end
end
function ddots()
if quarto.doc.is_format("pdf") then
return pandoc.Math('InlineMath', "\\ddots")
elseif quarto.doc.is_format("html") then
return pandoc.RawBlock('html', '&#8945;')
else
return "..."
end
end
function pct()
local pct
if quarto.doc.is_format("pdf") then
return pandoc.Math('InlineMath', '\\%')
else
return pandoc.Str("%")
end
end
function R2()
if quarto.doc.is_format("pdf") then
return pandoc.Math('InlineMath', "R^2")
else
return {pandoc.Str("R"), pandoc.Superscript("2")}
end
end

View File

@@ -0,0 +1,9 @@
title: LaTeX Environment
author: Posit Software, PBC
version: 1.1.2
quarto-required: ">=1.2.198"
contributes:
filters:
- latex-environment.lua
format:
pdf: default

View File

@@ -0,0 +1,133 @@
-- environment.lua
-- Copyright (C) 2020 by RStudio, PBC
local classEnvironments = pandoc.MetaMap({})
local classCommands = pandoc.MetaMap({})
-- helper that identifies arrays
local function tisarray(t)
local i = 0
for _ in pairs(t) do
i = i + 1
if t[i] == nil then return false end
end
return true
end
-- reads the environments
local function readEnvironments(meta)
local env = meta['environments']
if env ~= nil then
if tisarray(env) then
-- read an array of strings
for i, v in ipairs(env) do
local value = pandoc.utils.stringify(v)
classEnvironments[value] = value
end
else
-- read key value pairs
for k, v in pairs(env) do
local key = pandoc.utils.stringify(k)
local value = pandoc.utils.stringify(v)
classEnvironments[key] = value
end
end
end
end
local function readCommands(meta)
local env = meta['commands']
if env ~= nil then
if tisarray(env) then
-- read an array of strings
for i, v in ipairs(env) do
local value = pandoc.utils.stringify(v)
classCommands[value] = value
end
else
-- read key value pairs
for k, v in pairs(env) do
local key = pandoc.utils.stringify(k)
local value = pandoc.utils.stringify(v)
classCommands[key] = value
end
end
end
end
local function readEnvsAndCommands(meta)
readEnvironments(meta)
readCommands(meta)
end
-- use the environments from metadata to
-- emit a custom environment for latex
local function writeEnvironments(divEl)
if quarto.doc.is_format("latex") then
for k, v in pairs(classEnvironments) do
if divEl.attr.classes:includes(k) then
-- process this into a latex environment
local beginEnv = '\\begin' .. '{' .. v .. '}'
local endEnv = '\n\\end{' .. v .. '}'
-- check if custom options or arguments are present
-- and add them to the environment accordingly
local opts = divEl.attr.attributes['options']
if opts then
beginEnv = beginEnv .. '[' .. opts .. ']'
end
local args = divEl.attr.attributes['arguments']
if args then
beginEnv = beginEnv .. '{' .. args .. '}'
end
-- if the first and last div blocks are paragraphs then we can
-- bring the environment begin/end closer to the content
if #divEl.content > 0 and divEl.content[1].t == "Para" and divEl.content[#divEl.content].t == "Para" then
table.insert(divEl.content[1].content, 1, pandoc.RawInline('tex', beginEnv .. "\n"))
table.insert(divEl.content[#divEl.content].content, pandoc.RawInline('tex', "\n" .. endEnv))
else
table.insert(divEl.content, 1, pandoc.RawBlock('tex', beginEnv))
table.insert(divEl.content, pandoc.RawBlock('tex', endEnv))
end
return divEl
end
end
end
end
-- use the environments from metadata to
-- emit a custom environment for latex
local function writeCommands(spanEl)
if quarto.doc.is_format("latex") then
for k, v in pairs(classCommands) do
if spanEl.attr.classes:includes(k) then
-- resolve the begin command
local beginCommand = pandoc.RawInline('latex', '\\' .. pandoc.utils.stringify(v) .. '{')
local opts = spanEl.attr.attributes['options']
if opts then
beginCommand = pandoc.RawInline('latex', '\\' .. pandoc.utils.stringify(v) .. '[' .. opts .. ']{')
end
-- the end command
local endCommand = pandoc.RawInline('latex', '}')
-- attach the raw inlines to the span contents
local result = spanEl.content
table.insert(result, 1, beginCommand)
table.insert(result, endCommand)
return result
end
end
end
end
-- Run in two passes so we process metadata
-- and then process the divs
return {
{ Meta = readEnvsAndCommands },
{ Div = writeEnvironments, Span = writeCommands }
}

View File

@@ -0,0 +1,391 @@
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do ***
% *** not appear when using other class files. ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/
%%*************************************************************************
%% 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 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. **
%%
%% File list of work: IEEEtran.cls, New_IEEEtran_how-to.pdf, bare_jrnl_new_sample4.tex,
%%*************************************************************************
\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
\PassOptionsToPackage{hyphens}{url}
$if(colorlinks)$
\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor}
$endif$
$if(CJKmainfont)$
\PassOptionsToPackage{space}{xeCJK}
$endif$
% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
$doc-class.tex()$
%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[journal]{../sty/IEEEtran}
\usepackage[cmex10]{amsmath}
\usepackage{amssymb}
$if(linestretch)$
\usepackage{setspace}
$endif$
\usepackage{iftex}
\ifPDFTeX
\usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
$if(mathspec)$
\ifXeTeX
\usepackage{mathspec} % this also loads fontspec
\else
\usepackage{unicode-math} % this also loads fontspec
\fi
$else$
\usepackage{unicode-math} % this also loads fontspec
$endif$
\defaultfontfeatures{Scale=MatchLowercase}$-- must come before Beamer theme
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
$if(fontfamily)$
$else$
%\usepackage{lmodern}
$endif$
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$endif$
\ifPDFTeX\else
$-- xetex/luatex font selection
$if(mainfont)$
\setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
$endif$
$if(sansfont)$
\setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
$endif$
$if(monofont)$
\setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
$endif$
$for(fontfamilies)$
\newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
$endfor$
$if(mathfont)$
$if(mathspec)$
\ifXeTeX
\setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\else
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
\fi
$else$
\setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
$endif$
$endif$
$if(CJKmainfont)$
\ifXeTeX
\usepackage{xeCJK}
\setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
$if(CJKsansfont)$
\setCJKsansfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKsansfont$}
$endif$
$if(CJKmonofont)$
\setCJKmonofont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmonofont$}
$endif$
\fi
$endif$
$if(luatexjapresetoptions)$
\ifLuaTeX
\usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
\fi
$endif$
$if(CJKmainfont)$
\ifLuaTeX
\usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
\setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
\fi
$endif$
\fi
$if(zero-width-non-joiner)$
%% Support for zero-width non-joiner characters.
\makeatletter
\def\zerowidthnonjoiner{%
% Prevent ligatures and adjust kerning, but still support hyphenating.
\texorpdfstring{%
\TextOrMath{\nobreak\discretionary{-}{}{\kern.03em}%
\ifvmode\else\nobreak\hskip\z@skip\fi}{}%
}{}%
}
\makeatother
\ifPDFTeX
\DeclareUnicodeCharacter{200C}{\zerowidthnonjoiner}
\else
\catcode`^^^^200c=\active
\protected\def ^^^^200c{\zerowidthnonjoiner}
\fi
%% End of ZWNJ support
$endif$
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
$if(indent)$
\setlength{\parindent}{$indent$}
$else$
\makeatletter
\parindent 1.0em
\ifCLASSOPTIONcompsoc
\parindent 1.5em
\fi
\makeatother
$endif$
$if(verbatim-in-note)$
\usepackage{fancyvrb}
$endif$
\usepackage{xcolor}
$if(geometry)$
\usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
$endif$
$if(listings)$
\usepackage{listings}
\newcommand{\passthrough}[1]{#1}
\lstset{defaultdialect=[5.3]Lua}
\lstset{defaultdialect=[x86masm]Assembler}
$endif$
$if(lhs)$
\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
$endif$
$if(svg)$
\usepackage{svg}
$endif$
$if(strikeout)$
$-- also used for underline
\ifLuaTeX
\usepackage{luacolor}
\usepackage[soul]{lua-ul}
\else
\usepackage{soul}
$if(CJKmainfont)$
\ifXeTeX
% soul's \st doesn't work for CJK:
\usepackage{xeCJKfntef}
\renewcommand{\st}[1]{\sout{#1}}
\fi
$endif$
\fi
$endif$
\setlength{\emergencystretch}{3em} % prevent overfull lines
$if(numbersections)$
\setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$
$if(block-headings)$
% Make \paragraph and \subparagraph free-standing
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
$endif$
$if(pagestyle)$
\pagestyle{$pagestyle$}
$endif$
$pandoc.tex()$
$if(graphics)$
\usepackage[skip=2pt,font=footnotesize]{caption}
%\captionsetup{format=myformat}
$endif$
$if(csl-refs)$
\makeatletter
%\setlength{\cslhangindent}{0pt plus .5pt}
\providecommand{\bibfont}{\footnotesize}
\let\CSLReferences@rig=\CSLReferences
\renewcommand{\CSLReferences}[2]{
\bibfont\settowidth\csllabelwidth{[999]}
\CSLReferences@rig{#1}{#2}
\vskip 0.3\baselineskip plus 0.1\baselineskip minus 0.1\baselineskip%
}
\makeatother
$endif$
$if(lang)$
\ifLuaTeX
\usepackage[bidi=basic]{babel}
\else
\usepackage[bidi=default]{babel}
\fi
$if(babel-lang)$
\babelprovide[main,import]{$babel-lang$}
$if(mainfont)$
\ifPDFTeX
\else
\babelfont{rm}[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
\fi
$endif$
$endif$
$for(babel-otherlangs)$
\babelprovide[import]{$babel-otherlangs$}
$endfor$
$for(babelfonts/pairs)$
\babelfont[$babelfonts.key$]{rm}{$babelfonts.value$}
$endfor$
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
$endif$
\ifLuaTeX
\usepackage{selnolig} % disable illegal ligatures
\fi
$if(dir)$
\ifPDFTeX
\TeXXeTstate=1
\newcommand{\RL}[1]{\beginR #1\endR}
\newcommand{\LR}[1]{\beginL #1\endL}
\newenvironment{RTL}{\beginR}{\endR}
\newenvironment{LTR}{\beginL}{\endL}
\fi
$endif$
$if(biblio-config)$
$if(natbib)$
\usepackage[$natbiboptions$]{natbib}
\bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
\usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
$for(bibliography)$
\addbibresource{$bibliography$}
$endfor$
$endif$
$endif$
$if(nocite-ids)$
\nocite{$for(nocite-ids)$$it$$sep$, $endfor$}
$endif$
$if(csquotes)$
\usepackage{csquotes}
$endif$
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
$if(links-as-notes)$
% Make links footnotes instead of hotlinks:
\DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$
$if(verbatim-in-note)$
\VerbatimFootnotes % allow verbatim text in footnotes
$endif$
\hypersetup{
$if(title-meta)$
pdftitle={$title-meta$},
$endif$
$if(author-meta)$
pdfauthor={$author-meta$},
$endif$
$if(lang)$
pdflang={$lang$},
$endif$
$if(subject)$
pdfsubject={$subject$},
$endif$
$if(keywords)$
pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
$endif$
$if(colorlinks)$
colorlinks=true,
linkcolor={$if(linkcolor)$$linkcolor$$else$Maroon$endif$},
filecolor={$if(filecolor)$$filecolor$$else$Maroon$endif$},
citecolor={$if(citecolor)$$citecolor$$else$Blue$endif$},
urlcolor={$if(urlcolor)$$urlcolor$$else$Blue$endif$},
$else$
$if(boxlinks)$
$else$
hidelinks,
$endif$
$endif$
pdfcreator={LaTeX via pandoc}}
% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex). ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )
% correct bad hyphenation here
$if(hyphenation)$
\hyphenation{$for(hyphenation)$$hyphenation$$sep$ $endfor$}
$else$
\hyphenation{op-tical net-works semi-conduc-tor}
$endif$
%
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
$title.tex()$
\begin{document}
$before-body.tex()$
$for(include-before)$
$include-before$
$endfor$
$toc.tex()$
$if(linestretch)$
\setstretch{$linestretch$}
$endif$
$if(has-frontmatter)$
\mainmatter
$endif$
$body$
$before-bib.tex()$
$if(has-frontmatter)$
\backmatter
$endif$
$biblio.tex()$
$for(include-after)$
$include-after$
$endfor$
$after-body.tex()$
% that's all folks
\end{document}

View File

@@ -0,0 +1,340 @@
<?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 (with URL)</title>
<id>http://www.zotero.org/styles/ieee-with-url</id>
<link href="http://www.zotero.org/styles/ieee-with-url" rel="self"/>
<link href="http://www.ieee.org/documents/style_manual.pdf" rel="documentation"/>
<link href="http://www.ieee.org/documents/auinfo07.pdf" 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>
<category citation-format="numeric"/>
<category field="engineering"/>
<category field="generic-base"/>
<updated>2017-11-14T17:32:52+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="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 paper-conference song thesis" match="any">
<date variable="issued">
<date-part name="year" form="long"/>
</date>
</else-if>
<else>
<date variable="issued">
<date-part name="day" form="numeric-leading-zeros" suffix="-"/>
<date-part name="month" form="short" suffix="-" strip-periods="true"/>
<date-part name="year" form="long"/>
</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="container-title">
<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 variable="URL">
<group delimiter=". ">
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="URL"/>
</group>
<group prefix="[" suffix="]" delimiter=": ">
<text term="accessed" text-case="capitalize-first"/>
<date variable="accessed">
<date-part name="day" form="numeric-leading-zeros" suffix="-"/>
<date-part name="month" form="short" suffix="-" strip-periods="true"/>
<date-part name="year" form="long"/>
</date>
</group>
</group>
</if>
</choose>
</macro>
<macro name="page">
<group>
<label variable="page" form="short" suffix=" "/>
<text variable="page"/>
</group>
</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>
<!-- Citation Number -->
<text variable="citation-number" prefix="[" suffix="]"/>
<!-- Author(s) -->
<text macro="author" suffix=", "/>
<!-- Rest of Citation -->
<group suffix=". ">
<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"/>
</group>
</if>
<else-if type="paper-conference">
<group delimiter=", ">
<text macro="title"/>
<text macro="event"/>
<text macro="issued"/>
<text macro="locators"/>
<text macro="page"/>
</group>
</else-if>
<else-if type="report">
<group delimiter=", ">
<text macro="title"/>
<text macro="publisher"/>
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
<text macro="issued"/>
</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">
<group delimiter=", " suffix=". ">
<text macro="title"/>
<text variable="container-title" font-style="italic"/>
<text macro="issued"/>
</group>
</else-if>
<else-if type="patent">
<text macro="title" suffix=", "/>
<text variable="number"/>
<text macro="issued"/>
</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"/>
</group>
</else>
</choose>
<choose>
<if variable="URL">
<text value=" [Online]"/>
</if>
</choose>
</group>
<text macro="access"/>
</layout>
</bibliography>
</style>

View File

View File

@@ -0,0 +1 @@
$if(it.department)$$it.department$, $endif$$if(it.name)$$it.name$$endif$$if(it.city)$, $it.city$$endif$$if(it.address)$, $it.address$$endif$$if(it.postal-code)$, $it.postal-code$$endif$$if(it.country)$ $it.country$$endif$

View File

@@ -0,0 +1,68 @@
<div id="quarto-accordion" class="accordion d-none d-md-block" role="tablist">
$if(by-author)$
<div class="accordion-item container" id="">
<div class="accordion-header d-flex justify-content-between" id="heading-author" role="tab">
<button id="authors" class="accordion-button p-0" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-authors" aria-expanded="false" aria-controls="collapse-authors">Authors</button>
</div>
<div id="collapse-authors" class="accordion-body collapse" aria-labelledby="heading-authors" data-bs-parent="#quarto-accordion" role="tabpanel">
$for(by-author)$
<div class="accordion-authors container">
<div class="author-card"><div class="grid gap-0">
$if(it.metadata.photo)$
<div class="author-photo g-col-3 pe-3">
<img src="$it.metadata.photo$" alt="Author image of $it.name.literal$">
</div>
<div class="g-col-9">
<div>$author.html()$</div>
<div>$for(by-author.affiliations)$$affiliation.tex()$$sep$, $endfor$</div>
</div>
$else$
<div class="g-col-12">
<div>$author.html()$</div>
<div>$for(by-author.affiliations)$$affiliation.tex()$$sep$, $endfor$</div>
</div>
$endif$
</div>
$if(it.metadata.bio)$<div>$it.metadata.bio$</div>$endif$
</div>
</div>
$endfor$
</div>
</div>
$endif$
$if(refs)$
<div class="accordion-item container">
<div class="accordion-header d-flex justify-content-between" id="heading-references" role="tab">
<button id="authors" class="accordion-button p-0" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-references" aria-expanded="false" aria-controls="collapse-references">References</button>
</div>
<div id="collapse-references" class="accordion-body collapse" aria-labelledby="heading-references" data-bs-parent="#quarto-accordion" role="tabpanel">
<section id="references" class="accordion-references">
$refs$
</section>
</div>
</div>
$endif$
$if(keywords)$
<div class="accordion-item container">
<div class="accordion-header d-flex justify-content-between" id="heading-keywords" role="tab">
<button id="authors" class="accordion-button p-0" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-keywords" aria-expanded="false" aria-controls="collapse-keywords">Keywords</button>
</div>
<div id="collapse-keywords" class="accordion-body collapse" aria-labelledby="heading-keywords" data-bs-parent="#quarto-accordion" role="tabpanel">
<div class="accordion-keywords">
<strong>Author Keywords</strong>
<ul class="mt-3 p-0">
$if(keywords/allbutlast)$
$for(keywords/allbutlast)$<li>$keywords$, </li>$endfor$
<li>$keywords/last$</li>
$else$
$for(keywords)$<li>$keywords$</li>$endfor$
$endif$
</ul>
</div>
</div>
</div>
$endif$
</div>

View File

@@ -0,0 +1,16 @@
\pagebreak[3]
$for(by-author)$
$if(it.metadata.bio)$
$if(it.metadata.photo)$
\begin{IEEEbiography}[\includegraphics{$it.metadata.photo$}]{$it.name.literal$}
$else$
\begin{IEEEbiographynophoto}{$it.name.literal$}
$endif$
$it.metadata.bio$
$if(it.metadata.photo)$
\end{IEEEbiography}
$else$
\end{IEEEbiographynophoto}
$endif$
$endif$
$endfor$

View File

@@ -0,0 +1 @@
<span class="author-info">$if(by-author.url)$<a href="$by-author.url$" $if(by-author.affiliations)$title="$for(by-author.affiliations)$$it.name$, $it.department$$sep$, $endfor$"$endif$>$endif$$by-author.name.literal$$if(by-author.url)$</a>$endif$$if(by-author.orcid)$<a href="https://orcid.org/$by-author.orcid$" class="quarto-title-author-orcid px-1" target="orcid.widget" rel="me noopener noreferrer"><img src="https://orcid.org/sites/default/files/images/orcid_16x16.png" style="width: 1em; margin-inline-start: 0.5em" alt="ORCID iD icon"/></a>$endif$</span>

View File

@@ -0,0 +1 @@
$it.name.literal$$if(it.orcid)$\orcidlink{$it.orcid$}$endif$$if(it.metadata.membership)$,~\IEEEmembership{$it.metadata.membership$}$endif$

View File

@@ -0,0 +1,16 @@
% Can use something like this to put references on a page
% by themselves when using endfloat and the captionsoff option.
\ifCLASSOPTIONcaptionsoff
\newpage
\fi
% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}
% Uncomment when use biblatex with style=ieee
%\renewcommand{\bibfont}{\footnotesize} % for IEEE bibfont size

View File

@@ -0,0 +1,42 @@
% The paper headers
$if(pageheader)$
\markboth{$pageheader.left$}{$pageheader.right$}
$endif$
$if(pubid)$
\IEEEpubid{$pubid$~\copyright~\theyear IEEE}
$endif$
% use for special paper notices
$if(specialpapernotice)$
\IEEEspecialpapernotice{($specialpapernotice$)}
$endif$
% make the title area
\maketitle
% As a general rule, do not put math, special symbols or citations
% in the abstract or keywords.
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
% Note that keywords are not normally used for peerreview papers.
$if(keywords)$
\begin{IEEEkeywords}
$for(keywords)$$keywords$$sep$, $endfor$
\end{IEEEkeywords}
$endif$
% For peer review papers, you can put extra information on the cover
% page as needed:
% \ifCLASSOPTIONpeerreview
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
% \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
% \IEEEpeerreviewmaketitle

View File

@@ -0,0 +1,16 @@
\documentclass[
$if(fontsize)$
$fontsize$,
$endif$
$if(papersize)$
$papersize$paper,
$endif$
$for(classoption)$
$classoption$$sep$,
$endfor$
$if(journaltype)$
$journaltype$,
$else$
journal,
$endif$
]{IEEEtran}

View File

@@ -0,0 +1,76 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
<head>
$metadata.html()$
<style>
$styles.html()$
</style>
<!-- htmldependencies:E3FAD763 -->
$for(header-includes)$
$header-includes$
$endfor$
$if(math)$
$if(mathjax)$
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
$endif$
$math$
$endif$
$for(css)$
<link rel="stylesheet" href="$css$" />
$endfor$
</head>
<body>
$for(include-before)$
$include-before$
$endfor$
$if(title)$
$title-block.html()$
$elseif(subtitle)$
$title-block.html()$
$elseif(by-author)$
$title-block.html()$
$elseif(date)$
$title-block.html()$
$elseif(categories)$
$title-block.html()$
$elseif(date-modified)$
$title-block.html()$
$elseif(doi)$
$title-block.html()$
$elseif(abstract)$
$title-block.html()$
$elseif(keywords)$
$title-block.html()$
$endif$
<div class="quarto-main-body container p-0">
<section class="quarto-abstract d-flex">
<div class="container">
$title-metadata.html()$
</div>
</section>
$if(toc)$
$toc.html()$
$endif$
<div class="quarto-body-content">
$body$
</div>
$after-body.html()$
</div>
$for(include-after)$
$include-after$
$endfor$
</body>
</html>

View File

@@ -0,0 +1,10 @@
<!-- This is what works with Quarto -->
<script>
MathJax = {
loader: {load: ['[tex]/mhchem', '[tex]/physics']},
tex: {
tags: 'ams', // should be 'ams', 'none', or 'all'
packages: {'[+]': ['mhchem','physics']}
}
};
</script>

View File

@@ -0,0 +1,60 @@
<header id="title-block-header" class="quarto-title-block default" itemprop="headline">
<div class="col-12">
<div class="quarto-header">
<div class="quarto-title column-body">
<div class="container col">
<h1 class="title" itemprop="headline">$title$</h1>
$if(subtitle)$<p class="subtitle lead">$subtitle$</p>$endif$
<div class="container">
<div class="mb-3 mt-2 d-grid gap-3 d-md-flex">
$if(citation.publisher)$<span class="publisher btn text-success"><strong>Publisher:</strong> $citation.publisher$</span>$endif$
<a href="#citation" class="btn btn-outline-primary" role="button">Cite This</a>
$if(pdf)$<a href="$pdf$" class="btn btn-danger text-white" role="button"><i class="bi bi-file-pdf" rel="img" aria-label="PDF"></i>PDF</a>$endif$
</div>
</div>
</div>
</div>
<div class="quarto-subheader">
<div class="quarto-author-banner p-0">
<div class="d-flex align-items-center flex-nowrap">
$if(by-affiliation/first)$
<div class="quarto-author overflow-hidden">
<div class="d-flex flex-nowrap">
<div class="quarto-author-contents align-items-center text-truncate pe-0">
$if(author/allbutlast)$
$for(by-author/allbutlast)$$author.html()$$sep$; $endfor$ and ${ by-author/last:author.html() }
$else$
$for(by-author)$$author.html()$$endfor$
$endif$
</div>
</div>
</div>
$elseif(by-author)$
<div class="quarto-author overflow-hidden">
<div class="d-flex flex-nowrap">
<div class="quarto-author-contents align-items-center text-truncate pe-0">
$if(author/allbutlast)$
$for(by-author/allbutlast)$$author.html()$$sep$; $endfor$ and ${ by-author/last:author.html() }
$else$
$for(by-author)$$author.html()$$endfor$
$endif$
</div>
</div>
</div>
$endif$
<div class="d-none d-md-flex align-items-center">
<div class="author-all d-none d-md-block">
<a href="#authors" class="">All Authors</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<hr class="px-3 mt-2">
</header>

View File

@@ -0,0 +1,60 @@
$if(abstract)$
<div class="quarto-abstract-block d-flex row g-0">
<div class="col-12">
<div class="abstract mb-3">
<strong class="abstract-title">$labels.abstract$:</strong>
$abstract$
</div>
</div>
</div>
$elseif(citation.abstract)$
<div class="quarto-abstract-block d-flex row g-0">
<div class="col-12">
<div class="abstract mb-3">
<strong class="abstract-title">$labels.abstract$:</strong>
$citation.abstract$
</div>
</div>
</div>
$endif$
$if(citation)$
<div class="citation-meta published-in pb-3">
$if(citation.container-title)$<strong class="citation-title">Published in:</strong> $citation.container-title$
($if(citation.volume)$<span>Volume:</span>$citation.volume$, $endif$
$if(citation.issue)$<span>Issue:</span>$citation.issue$, $endif$
$if(citation.available-date)$$citation.available-date.literal$$endif$)
$endif$
</div>
<div class="container g-0 pt-3">
<div class="grid">
<div class="g-col-6">
$if(citation.page)$
<div class="citation-meta pb-3"><strong class="citation-title">Page(s):</strong> $citation.page$</div>
$endif$
$if(date)$
<div class="citation-meta pb-3"><strong class="citation-title">Date of Publication:</strong> $date$</div>$endif$
</div>
<div class="g-col-6">
$if(citation.doi)$<div class="citation-meta pb-3"><strong>DOI:</strong> <a href="https://doi.org/$citation.doi$">$citation.doi$</a></div>$endif$
$if(citation.publisher)$<div class="citation-meta pb-3"><strong>Publisher: </strong> $citation.publisher$</div>$endif$
</div>
$if(funding)$
<div class="g-col-12 pb-3">
<div class="funding">
<a class="btn p-0" data-bs-toggle="collapse" href="#collapseFA" role="button" aria-expanded="false" aria-controls="collapseFA"><div class="expand_caret caret"><i class="bi bi-caret-right-fill"></i></div><strong>Funding Agency</strong></a>
<div class="collapse" id="collapseFA">
<div class="funding-info" >
$for(funding)$$funding.statement$$sep$; $endfor$
</div>
</div>
</div>
</div>
$endif$
</div>
</div>
$endif$

View File

@@ -0,0 +1,58 @@
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
$if(title)$
\title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
\author{
$if(funding)$
\thanks{$for(funding)$$for(funding.statement)$$funding.statement$$endfor$$endfor$}
$endif$
$if(author/allbutlast)$
$for(by-author/allbutlast)$$author.tex()$$sep$,~$endfor$
and~${ by-author/last:author.tex() }%
$for(by-author)$
$if(tex-author-no-affiliation)$
$else$
$if(by-author.affiliations)$
$if(by-author.affiliations/first)$
$for(by-author.affiliations/first)$
\thanks{$by-author.name.literal$ is with $affiliation.tex()$%
$if(by-author.attributes.corresponding)$$if(by-author.email)$  Corresponding author: $by-author.email$$endif$
$else$$if(by-author.email)$ e-mail: $by-author.email$$endif$$endif$}
$endfor$
$if(by-author.affiliations/rest/first)$
$for(by-author.affiliations/rest/first)$
\thanks{$affiliation.tex()$}
$endfor$
$endif$
$endif$
$endif$%by-author.affiliations
$endif$
$if(by-author.note.text)$
\thanks{$by-author.note.text$}
$endif$
$endfor$
$else$
$for(by-author)$$author.tex()$%
$if(by-author.affiliations)$
$if(by-author.affiliations/first)$
$for(by-author.affiliations/first)$
\thanks{$by-author.name.literal$ is with $affiliation.tex()$%
$if(by-author.attributes.corresponding)$$if(by-author.email)$  Corresponding author: $by-author.email$$endif$
$else$$if(by-author.email)$#e-mail: $by-author.email$$endif$$endif$}
$endfor$
$if(by-author.affiliations/rest/first)$
$for(by-author.affiliations/rest/first)$
\thanks{$affiliation.tex()$}
$endfor$
$endif$
$endif$
$endif$
$if(by-author.note.text)$
\thanks{$by-author.note.text$}
$endif$
$endfor$
$endif$
}

View File

@@ -0,0 +1,348 @@
/*-- scss:uses --*/
/*-- scss:functions --*/
/*-- scss:defaults --*/
$theme: "IEEE";
// Color system
// scss-docs-start gray-color-variables
$white: #f3fafe;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dddddd ;
$gray-400: #ced4da !default;
$gray-500: #adb5bd !default;
$gray-600: #6c757d !default;
$gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #333;
$black: #000;
// scss-docs-end gray-color-variables
// Options
//
// Quickly modify global styling by enabling or disabling optional features.
$enable-caret: true !default;
$enable-rounded: false;
$enable-shadows: false;
$enable-gradients: false;
$enable-transitions: true !default;
$enable-smooth-scroll: false;
$enable-grid-classes: true;
$enable-print-styles: true;
$enable-print-dark: true;
$enable-responsive-font-sizes: true!default;
$enable-dark-mode: true !default;
$color-mode-type: data !default; // `data` or `media-query`
// scss-docs-start font-variables
// stylelint-disable value-keyword-case
$font-family-serif: Georgia, serif, "Noto Serif","Times New Roman",Times;
$font-family-sans-serif: Verdana, sans-serif, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$font-family-sans-serif-alt: "Helvetica Neue", sans-serif,"Noto Sans";
// stylelint-enable value-keyword-case
$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
$font-size-sm: $font-size-base * .875 !default;
$font-size-min: 0.75rem;
$font-size-foot: max(($font-size-base * .875), $font-size-min);
$font-size-footnote: max(($font-size-base * .75), $font-size-min);
$line-height-base: 1.5 !default;
$h1-font-size: 32px;
$h2-font-size: 1.145em;
$h3-font-size: 0.93em;
// scss-docs-end font-variables
// Spacing
// scss-docs-start spacer-variables-maps
$spacer: 1rem !default;
// scss-docs-end spacer-variables-maps
// Body
//
// Settings for the `<body>` element.
$body-color: $gray-900;
$body-bg: $white;
// Style anchor elements.
$link-color: #069;
//$link-decoration: none;
// scss-docs-start headings-variables
$headings-font-family: $font-family-serif;
$headings-line-height: 32px;
$headings-color: inherit !default;
// scss-docs-end headings-variables
/*-- scss:rules --*/
.text-base-md {
font-family: $font-family-sans-serif-alt;
font-size: 18px!important;
line-height: 30px!important
}
#quarto-document-content{
a{
&:not([href]), &:not([class]){
color: $link-color;
text-decoration: none;
}
&:hover{
text-decoration: $link-decoration;
}
}
h1{
font-family: $font-family-sans-serif;
opacity: 0.9;
font-weight: 400;
line-height: 1.3;
margin: 13px 0 25px;
padding: 13px 0 15px;
text-size-adjust: 100%;
word-wrap: break-word;
.header-section-number{
display: block;
font-size:21px;
font-weight: 700;
color: #0e70a0;
&::before{
content: "SECTION ";
}
&::after{
content: ".";
}
}
&::after{
content: "";
display: table;
clear: both;
}
}
h1.title {
font-family: $font-family-sans-serif-alt;
font-weight: 700;
line-height: 38px;
margin: 0;
padding: 6.4px 16px 12.8px;
}
h2, h3, h4, h5{
.header-section-number{color: #333;}
}
h2 {
font-weight: 700;
line-height: 1.3;
margin: 0 0 0.1em;
}
h3 {
font-weight: 700;
line-height: 1.3;
margin: 0 0 0.1em;
}
#title-block-header.quarto-title-block.default{
//font-family: $font-family-sans-serif-alt;
//font-size: 18px;
//line-height: 30px;
@extend .text-base-md ;
font-weight: 400;
.quarto-subheader{
//padding: 0.25rem 1rem 0.25rem 0;
width:100%;
div.quarto-author-banner{
margin: 0;
div.quarto-author{
padding: $spacer/4 $spacer $spacer/4 0;
div.quarto-author-contents{
padding: 4px 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
.author-info{
a {
color: $link-color;
&:hover{
text-decoration: underline;
}
}
}
}
}
div.author-all{
font-weight: 700;
white-space: nowrap;
}
}
}
hr{
border-top: 2px solid $gray-300;
width:98%;
margin-left: $spacer;
}
}
.quarto-main-body{
section.quarto-abstract{
@extend .text-base-md ;
padding: $spacer/2 $spacer;
border-bottom: 2px solid $link-color;
div.quarto-abstract-block {
margin-bottom: 1em!important;
.abstract .abstract-title{
font-weight: 700;
text-transform: none;
}
}
div.funding{
strong{
@extend .text-base-md ;
}
div.expand_caret {
display: inline-block;
/*transform: scale(1.6);
margin-left: 8px;
margin-top: -4px;*/
}
a[aria-expanded='true'] > div.expand_caret {
transform: rotate(90deg);
}
.funding-info {
padding: 0.6875rem 0 0 1.6875rem;
}
}
}
div.quarto-body-content{
border-bottom: 1px solid #333;
section{
p{
font-family: $font-family-serif;
margin: 0 0 1.5em;
}
.quarto-figure{
font-size: 15px;
font-family: $font-family-sans-serif;
clear: both;
margin: 1em 0 2em;
figure{
display: flex;
flex-direction: column;
border: 1px solid #c6c6c6;
p {
margin:0;
img{
margin: 0 auto;
max-width: 100%;
vertical-align: middle;
border: none;
}
}
figcaption{
color: #666;
line-height: 1.3;
border-bottom: 1px dotted #999;
padding: 8px 0;
}
}
}
}
}
counter-reset: appendix;
.appendix{
@extend h1;
display: block;
counter-increment: appendix;
&:before{
display: block;
font-size: 21px;
font-weight: 700;
color: #0e70a0;
content: 'Appendix ' counter(appendix, upper-alpha);
}
&:after{
content: attr(data-options);
}
}
#quarto-accordion{
@extend .text-base-md ;
border: none;
border-bottom: 1px solid #333;
div.accordion-item{
border: none;
&:not(first-child){
border-top: 1px solid #333;
}
div.accordion-header{
color: #333;
font-size: 1em;
padding: 0.5rem;
.accordion-button{
@extend .text-base-md ;
font-weight: 400;
color: #333;
&:not(collapsed){
box-shadow: none;
}
}
}
div.accordion-body{
padding: 0.8em;
div.accordion-authors{
&:not(:first-child){
padding-top: 1em;
}
&:not(:last-child){
padding-bottom: 1em;
border-bottom: 1px solid #ddd;
}
div.author-card{
display: block;
.author-photo {
max-width: 96%;
img{
width:100%;
border-radius: 0.5rem;
}
}
}
}
#references{
@extend .text-base-md ;
.csl-entry{
overflow-wrap: break-word;
&:not(:first-child){
padding-top: 1em;
}
&:not(:last-child){
padding-bottom: 1em;
border-bottom: 1px solid #dddddd;
}
.csl-right-inline{
padding: 0 1em;
}
}
}
.accordion-keywords{
ul li{
display: inline-flex;
padding-right: 5px;
list-style-type: none!important;
}
}
}
}
}
}
}

6
_quarto.yml Normal file
View File

@@ -0,0 +1,6 @@
project:
output-dir: .
formats:
ieee-pdf: default
ieee-html: default

56
bibliography.bib Normal file
View File

@@ -0,0 +1,56 @@
@book{mittelbach2023latex,
title = {The {{LaTeX}} Companion},
author = {Mittelbach, F. and Fischer, U.},
date = {2023},
series = {Addison-{{Wesley}} Series on Tools and Techniques for Computer Typesetting},
edition = {3rd},
publisher = {{Addison Wesley Professional}},
isbn = {978-0-201-36300-5},
issue = {pt. 2}
}
@software{MacFarlane_Pandoc,
author = {MacFarlane, John and Krewinkel, Albert and Rosenthal, Jesse},
title = {{Pandoc}},
url = {https://github.com/jgm/pandoc}
}
@software{Allaire_Quarto_2022,
author = {Allaire, J.J. and Teague, Charles and Scheidegger, Carlos and Xie, Yihui and Dervieux, Christophe},
doi = {10.5281/zenodo.5960048},
month = jan,
title = {{Quarto}},
url = {https://github.com/quarto-dev/quarto-cli},
version = {1.2},
year = {2022}
}
@online{quarto-markdown,
title = {Quarto - {{Markdown Basics}}},
url = {https://quarto.org/docs/authoring/markdown-basics},
urldate = {2023-10-25},
langid = {english},
organization = {{Quarto}}
}
@online{quarto-funding,
title = {Quarto - {{Front Matter}}},
url = {https://quarto.org/docs/authoring/front-matter.html#funding},
urldate = {2023-10-25},
langid = {english},
organization = {{Quarto}}
}
@online{quarto-authors,
title = {Quarto - {{Authors}} \& {{Affiliations}}},
url = {https://quarto.org/docs/journals/authors.html},
urldate = {2023-10-25},
langid = {english},
organization = {{Quarto}}
}
@online{quarto-citation,
title = {Quarto - {{Creating Citeable Articles}}},
url = {https://quarto.org/docs/authoring/create-citeable-articles.html},
urldate = {2023-10-25},
langid = {english},
organization = {{Quarto}}
}

329
examples/2023botrosRAL.bib Normal file
View File

@@ -0,0 +1,329 @@
@STRING{Science_Robotics = "Sci. Robot."}
@STRING{AIS = "Adv. Int.Syst"}
@STRING{AMT = "Adv. Mater. Technol."}
@STRING{IJO = "Int. J. Optomechatron."}
@STRING{ICRA = "Proc. IEEE Int. Conf. Robot. Automat."}
@STRING{IEEE_J_ITS = "{IEEE} Trans. Intell. Transp. Syst."}
@STRING{IEEE_J_BME = "{IEEE} Trans. Biomed. Eng."}
@STRING{IEEE_J_RAL = "{IEEE} Robot. Autom. Lett."}
@STRING{IEEE_J_RO = "{IEEE} Trans. Robot."}
@article{li2017micro,
title = {Micro/Nanorobots for Biomedicine: {{Delivery}}, Surgery, Sensing, and Detoxification},
author = {Li, Jinxing et al.},
date = {2017},
journaltitle = Science_Robotics,
volume = {2},
number = {4},
keywords = {cancer},
}
@article{chung2021magnetically,
title = {Magnetically {{Controlled Soft Robotics Utilizing Elastomers}} and {{Gels}} in {{Actuation}}: {{A Review}}},
shorttitle = {Magnetically {{Controlled Soft Robotics Utilizing Elastomers}} and {{Gels}} in {{Actuation}}},
author = {Chung, Hyun-Joong and Parsons, Andrew M. and Zheng, Lelin},
date = {2021},
journaltitle = AIS,
volume = {3},
number = {3},
pages = {2000186},
issn = {2640-4567},
doi = {10.1002/aisy.202000186},
}
@article{pane2019imaging,
title = {Imaging {{Technologies}} for {{Biomedical Micro-}} and {{Nanoswimmers}}},
author = {Pané, Salvador and Puigmartí-Luis, Josep and Bergeles, Christos and Chen, Xiang-Zhong and Pellicer, Eva and Sort, Jordi and Počepcová, Vanda and Ferreira, Antoine and Nelson, Bradley J.},
date = {2019},
journaltitle = AMT,
volume = {4},
number = {4},
pages = {1800575},
issn = {2365-709X},
doi = {10.1002/admt.201800575},
}
@inproceedings{scheggi2017magnetic,
title = {Magnetic Motion Control and Planning of Untethered Soft Grippers Using Ultrasound Image Feedback},
booktitle = ICRA,
author = {Scheggi, Stefano and Chandrasekar, Krishna Kumar T. and Yoon, ChangKyu and Sawaryn, Ben and family=Steeg, given=Gert, prefix=van de, useprefix=true and Gracias, David H. and Misra, Sarthak},
date = {2017-05},
pages = {6156--6161},
doi = {10.1109/ICRA.2017.7989730},
}
@article{khalil2018mechanical,
title = {Mechanical {{Rubbing}} of {{Blood Clots Using Helical Robots Under Ultrasound Guidance}}},
author = {Khalil, Islam S. M. and Mahdy, Dalia and Sharkawy, Ahmed El and Moustafa, Ramez R. and Tabak, Ahmet Fatih and Mitwally, Mohamed E. and Hesham, Sarah and Hamdi, Nabila and Klingner, Anke and Mohamed, Abdelrahman and Sitti, Metin},
date = {2018-04},
journaltitle = IEEE_J_RAL,
volume = {3},
number = {2},
pages = {1112--1119},
issn = {2377-3766},
doi = {10.1109/LRA.2018.2792156},
eventtitle = {{{IEEE Robotics}} and {{Automation Letters}}},
}
@article{hu2018smallscale,
title = {Small-Scale Soft-Bodied Robot with Multimodal Locomotion},
author = {Hu, Wenqi and Lum, Guo Zhan and Mastrangeli, Massimo and Sitti, Metin},
date = {2018-02},
journaltitle = {Nature},
volume = {554},
number = {7690},
pages = {81--85},
publisher = {{Nature Publishing Group}},
issn = {1476-4687},
doi = {10.1038/nature25443},
}
@article{ackermann2016detection,
title = {Detection and {{Tracking}} of {{Multiple Microbubbles}} in {{Ultrasound B-Mode Images}}},
author = {Ackermann, Dimitri and Schmitz, Georg},
date = {2016-01},
journaltitle = {IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control},
volume = {63},
number = {1},
pages = {72--82},
issn = {1525-8955},
doi = {10.1109/TUFFC.2015.2500266},
}
@article{zhang2021kalman,
title = {A {{Kalman Filter-Based Kernelized Correlation Filter Algorithm}} for {{Pose Measurement}} of a {{Micro-Robot}}},
author = {Zhang, Heng and Zhan, Hongwu and Zhang, Libin and Xu, Fang and Ding, Xinbin},
date = {2021-07},
journaltitle = {Micromachines},
volume = {12},
number = {7},
pages = {774},
publisher = {{Multidisciplinary Digital Publishing Institute}},
issn = {2072-666X},
doi = {10.3390/mi12070774},
issue = {7},
}
@article{tiryaki2022deep,
title = {Deep {{Learning-based 3D Magnetic Microrobot Tracking}} Using {{2D MR Images}}},
author = {Tiryaki, Mehmet Efe and Demir, Sinan Ozgun and Sitti, Metin},
date = {2022-07},
journaltitle = IEEE_J_RAL,
volume = {7},
number = {3},
pages = {6982--6989},
issn = {2377-3766},
doi = {10.1109/LRA.2022.3179509},
}
@inproceedings{khalil2014magneticbase,
ids = {c11},
title = {Magnetic-Based Closed-Loop Control of Paramagnetic Microparticles Using Ultrasound Feedback},
booktitle = ICRA,
author = {Khalil, Islam S. M. and Ferreira, Pedro and Eleutério, Ricardo and family=Korte, given=Chris L., prefix=de, useprefix=true and Misra, Sarthak},
date = {2014},
pages = {3807--3812},
issn = {1050-4729},
doi = {10.1109/ICRA.2014.6907411},
}
@article{chen2019ultrasound,
title = {Ultrasound Tracking of the Acoustically Actuated Microswimmer},
author = {Chen, Qiyang and Liu, Fang-Wei and Xiao, Zunding and Sharma, Nitin and Cho, Sung Kwon and Kim, Kang},
date = {2019},
journaltitle = IEEE_J_BME,
volume = {66},
number = {11},
pages = {3231--3237},
doi = {10.1109/TBME.2019.2902523},
}
@article{sanchez2014magnetic,
title = {Magnetic Control of Self-Propelled Microjets under Ultrasound Image Guidance},
author = {Sánchez, Alonso and Magdanz, Veronika and Schmidt, Oliver G. and Misra, Sarthak},
date = {2014},
journaltitle = {IEEE RAS/EMBS International Conference on Biomedical Robotics and Biomechatronics},
pages = {169--174},
issn = {2155-1774},
doi = {10.1109/BIOROB.2014.6913771},
}
@article{magdanz2020ironsperm,
title = {{{IRONSperm}}: {{Sperm-templated}} Soft Magnetic Microrobots},
shorttitle = {{{IRONSperm}}},
author = {Magdanz, Veronika and Khalil, Islam S. M. and Simmchen, Juliane and Furtado, Guilherme P. and Mohanty, Sumit and Gebauer, Johannes and Xu, Haifeng and Klingner, Anke and Aziz, Azaam and Medina-Sánchez, Mariana and Schmidt, Oliver G. and Misra, Sarthak},
date = {2020},
journaltitle = {Science Advances},
volume = {6},
number = {28},
publisher = {{American Association for the Advancement of Science}},
doi = {10.1126/sciadv.aba5855},
}
@article{pane2021realtime,
title = {Real-Time Imaging and Tracking of Microrobots in Tissues Using Ultrasound Phase Analysis},
author = {Pane, S. and Iacovacci, V. and Sinibaldi, E. and Menciassi, A.},
date = {2021-01-06},
journaltitle = {Applied Physics Letters},
shortjournal = {Applied Physics Letters},
volume = {118},
number = {1},
pages = {014102},
issn = {0003-6951},
doi = {10.1063/5.0032969},
}
@article{wang2020realtime,
title = {Real-{{Time Magnetic Navigation}} of a {{Rotating Colloidal Microswarm Under Ultrasound Guidance}}},
author = {Wang, Qianqian and Yang, Lidong and Yu, Jiangfan and Chiu, Philip Wai Yan and Zheng, Yong-Ping and Zhang, Li},
date = {2020-12},
journaltitle = IEEE_J_BME,
volume = {67},
number = {12},
pages = {3403--3412},
issn = {1558-2531},
doi = {10.1109/TBME.2020.2987045},
}
@article{wang2021ultrasound,
ids = {c17},
title = {Ultrasound {{Doppler-guided}} Real-Time Navigation of a Magnetic Microswarm for Active Endovascular Delivery},
author = {Wang, Qianqian and Chan, Kai Fung and Schweizer, Kathrin and Du, Xingzhou and Jin, Dongdong and Yu, Simon Chun Ho and Nelson, Bradley J. and Zhang, Li},
date = {2021-02-26},
journaltitle = {Science Advances},
volume = {7},
number = {9},
pages = {eabe5914},
publisher = {{American Association for the Advancement of Science}},
doi = {10.1126/sciadv.abe5914},
}
@article{liu2022capsule,
title = {Capsule Robot Pose and Mechanism State Detection in Ultrasound Using Attention-Based Hierarchical Deep Learning},
author = {Liu, Xiaoyun and Esser, Daniel and Wagstaff, Brandon and Zavodni, Anna and Matsuura, Naomi and Kelly, Jonathan and Diller, Eric},
date = {2022-12-07},
journaltitle = {Scientific Reports},
shortjournal = {Sci Rep},
volume = {12},
number = {1},
pages = {21130},
publisher = {{Nature Publishing Group}},
issn = {2045-2322},
doi = {10.1038/s41598-022-25572-w},
issue = {1},
}
@inproceedings{botross2022fully,
title = {Fully {{Automatic}} and {{Real-Time Microrobot Detection}} and {{Tracking}} Based on {{Ultrasound Imaging}} Using {{Deep Learning}}},
booktitle = ICRA,
author = {Botross, Karim and Alkhatib, Mohammad and Folio, David and FERREIRA, Antoine},
date = {2022-07-12},
publisher = {{IEEE}},
location = {{Philadelphia, US}},
doi = {10.1109/ICRA46639.2022.9812114},
}
@article{kummer2010octomag,
title = {Octomag: {{An}} Electromagnetic System for 5-{{DOF}} Wireless Micromanipulation},
author = {Kummer, Michael Philipp and Abbott, Jake J. and Kratochvil, Bradley E. and Borer, Ruedi and Sengul, Ali and Nelson, Bradley J.},
date = {2010},
journaltitle = IEEE_J_RO,
volume = {26},
number = {6},
pages = {1006--1017},
issn = {15523098},
doi = {10.1109/TRO.2010.2073030},
}
@article{mathieu2010steeringa,
title = {Steering of Aggregating Magnetic Microparticles Using Propulsion Gradients Coils in an {{MRI Scanner}}},
author = {Mathieu, Jean-Baptiste and Martel, Sylvain},
date = {2010},
journaltitle = {Magnetic Resonance in Medicine},
volume = {63},
number = {5},
pages = {1336--1345},
issn = {1522-2594},
doi = {10.1002/mrm.22279},
}
@article{ghanbari2014electromagnetic,
title = {Electromagnetic {{Steering}} of a {{Magnetic Cylindrical Microrobot Using Optical Feedback Closed-Loop Control}}},
author = {Ghanbari, Ali and Chang, Pyung H. and Nelson, Bradley J. and Choi, Hongsoo},
date = {2014-04-03},
journaltitle = IJO,
volume = {8},
number = {2},
pages = {129--145},
publisher = {{Taylor \& Francis}},
issn = {1559-9612},
doi = {10.1080/15599612.2014.901454},
}
@article{yang20203d,
title = {3-{{D Visual Servoing}} of {{Magnetic Miniature Swimmers Using Parallel Mobile Coils}}},
author = {Yang, Zhengxin and Yang, Lidong and Zhang, Li},
date = {2020-11},
journaltitle = {IEEE Trans. Med. Robot. Bionics},
volume = {2},
number = {4},
pages = {608--618},
issn = {2576-3202},
doi = {10.1109/TMRB.2020.3033020}
}
@article{hu2018smallscale,
title = {Small-Scale Soft-Bodied Robot with Multimodal Locomotion},
author = {Hu, Wenqi and Lum, Guo Zhan and Mastrangeli, Massimo and Sitti, Metin},
date = {2018-02},
journaltitle = {Nature},
volume = {554},
number = {7690},
pages = {81--85},
publisher = {{Nature Publishing Group}},
issn = {1476-4687},
doi = {10.1038/nature25443},
issue = {7690},
}
@article{bi2018design,
title = {Design of {{Microscale Magnetic Tumbling Robots}} for {{Locomotion}} in {{Multiple Environments}} and {{Complex Terrains}}},
author = {Bi, Chenghao and Guix, Maria and Johnson, Benjamin V. and Jing, Wuming and Cappelleri, David J.},
date = {2018-02},
journaltitle = {Micromachines},
volume = {9},
number = {2},
pages = {68},
publisher = {{Multidisciplinary Digital Publishing Institute}},
issn = {2072-666X},
doi = {10.3390/mi9020068},
issue = {2},
}
@inproceedings{youakim2015paramagnetic,
title = {Paramagnetic Microparticles Sliding on a Surface: {{Characterization}} and Closed-Loop Motion Control},
shorttitle = {Paramagnetic Microparticles Sliding on a Surface},
booktitle = ICRA,
author = {Youakim, Kareem and Ehab, Mohamed and Hatem, Omar and Misra, Sarthak and Khalil, Islam S. M.},
date = {2015-05},
pages = {4068--4073},
issn = {1050-4729},
doi = {10.1109/ICRA.2015.7139768},
}
@article{li2020propulsiona,
title = {Propulsion {{Mechanism}} of {{Flexible Microbead Swimmers}} in the {{Low Reynolds Number Regime}}},
author = {Li, Yan-Hom and Chen, Shao-Chun},
date = {2020-12},
journaltitle = {Micromachines},
volume = {11},
number = {12},
pages = {1107},
publisher = {{Multidisciplinary Digital Publishing Institute}},
issn = {2072-666X},
doi = {10.3390/mi11121107},
issue = {12},}
}
@article{srivastava2021comparative,
title = {Comparative Analysis of Deep Learning Image Detection Algorithms},
author = {Srivastava, Shrey and Divekar, Amit Vishvas and Anilkumar, Chandu and Naik, Ishika and Kulkarni, Ved and Pattabiraman, V.},
date = {2021-05-10},
journaltitle = {Journal of Big Data},
volume = {8},
number = {1},
pages = {66},
issn = {2196-1115},
doi = {10.1186/s40537-021-00434-w},
}
@article{marvasti-zadeh2022deep,
title = {Deep {{Learning}} for {{Visual Tracking}}: {{A Comprehensive Survey}}},
shorttitle = {Deep {{Learning}} for {{Visual Tracking}}},
author = {Marvasti-Zadeh, Seyed Mojtaba and Cheng, Li and Ghanei-Yakhdan, Hossein and Kasaei, Shohreh},
date = {2022-05},
journaltitle = IEEE_J_ITS,
volume = {23},
number = {5},
pages = {3943--3968},
issn = {1558-0016},
doi = {10.1109/TITS.2020.3046478},
}

128
examples/2023botrosRAL.qmd Normal file
View File

@@ -0,0 +1,128 @@
---
title: "USMicroMagSet: Using Deep Learning Analysis to Benchmark the Performance of Microrobots in Ultrasound Images"
format:
ieee-pdf:
keep-tex: true
ieee-html: default
tex-author-no-affiliation: true
affiliations:
- id: PRISME
name: "INSA Centre Val de Loire, Univ. Orléans, PRISME EA4229"
affiliation-url: https://www.univ-orleans.fr/fr/prisme
city: Bourges
country: France
- id: pascal
name: Clermont Auvergne INP, CNRS, SIGMA Clermont
departement: Institut Pascal
city: Clermont Ferrand
country: France
url: http://www.institutpascal.uca.fr
author:
- name: Karim Botros
orcid: 0000-0003-0245-1852
membership: Student Member, IEEE
affiliations:
- ref: PRISME
note:
- "Manuscript received 31 October 2022; accepted 9 March 2023. Date of publication 5 April 2023; date of current version 21 April 2023."
- "This paper was recommended for publication by Editor Pietro Valdastri upon evaluation of the Associate Editor and Reviewers' comments. This work was supported by the Region Centre Val de Loire Fund with the BUBBLEBOT project."
- name: Mohammad Alkhatib
affiliations:
- ref: pascal
orcid: 0000-0003-0971-3835
membership: Member, IEEE
note: "Karim Botros, David Folio, and Antoine Ferreira are with the INSA Centre Val de Loire, Laboratoire PRISME, 18000, Bourges, France (e-mail: <karim.botros@insa-cvl.fr>; david.folio@insa-cvl.fr; antoine.ferreira@insacvl.fr)."
- name: David Folio
affiliations:
- ref: PRISME
orcid: 0000-0001-9430-6091
membership: Member, IEEE
email: david.folio@insa-cvl.fr
url: https://dfolio.fr/
note: "Mohammad Alkhatib is with the Clermont Auvergne INP, CNRS, SIGMA Clermont, Institut Pascal, F-63000 Clermont Ferrand, France"
- name: Antoine Ferreira
affiliations:
- ref: PRISME
orcid: 0000-0001-6295-3876
membership: Member, IEEE
email: antoine.ferreira@insa-cvl.fr
attributes:
corresponding: true
note: "Digital Object Identifier (DOI): [10.1109/LRA.2023.3264746](https://doi.org/10.1109/LRA.2023.3264746)."
abstract: |
Microscale robots introduce great perspectives into many medical applications such as drug delivery, minimally invasive surgery, and localized biometric diagnostics. Fully automatic microrobots' real-time detection and tracking using medical imagers are actually investigated for future clinical translation. Ultrasound (US) B-mode imaging has been employed to monitor single agents and collective swarms of microrobots _in vitro_ and _ex vivo_ in controlled experimental conditions. However, low contrast and spatial resolution still limit the effective employment of such a method in a medical microrobotic scenario due to uncertainties associated with the position of microrobots. The positioning error arises due to the inaccuracy of the US-based visual feedback, which is provided by the detection and tracking algorithms. The application of deep learning networks is a promising solution to detect and track real-time microrobots in noisy ultrasonic images. However, what is most striking is the performance gap among state-of-the-art microrobots deep learning detection and tracking research. A key factor of that is the unavailability of large-scale datasets and benchmarks. In this paper, we present the first publicly available B-mode ultrasound dataset for microrobots (_USmicroMagSet_) with accurate annotations which contains more than 40000 samples of magnetic microrobots.
In addition, for analyzing the performance of microrobots included in the proposed benchmark dataset, 4 deep learning detectors and 4 deep learning trackers are used.
keywords: [Micro/nano robots, Medical robots and systems, deep learning methods.]
hyphenation: [in-vasive, auto-matic, micro-robot]
pageheader:
left: "IEEE Robotics and Automation Letters. Preprint Version (generated by the authors). Accepted March, 2023"
right: 'K. Botros _et al._: USMicroMagSet'
bibliography: 2023botrosRAL.bib
date: 2023-04-05
pdf: 2023botrosRAL.pdf
funding: Region Centre Val de Loire Fund with the BUBBLEBOT
citation:
container-title: IEEE Robotics and Automation Letters
page: 3254 - 3261
type: article-journal
publisher: IEEE
issued: 2023-06
doi: 10.1109/LRA.2023.3264746
url: https://ieeexplore.ieee.org/document/10093014
volume: 8
issue: 6
---
# Introduction {#sec-intro}
:::{#fig-dataset fig-env="figure*" fig-pos="ht"}
![](Figures/Figure1.png){width="80%"}
Illustration of the three classes of eight swimming magnetic microrobots used for the $USMicroMagset$ dataset. For each microrobot, 5k images were extracted from 5 videos of 10min each. (Row 1) Class SMF: Steering magnetic field with three subclasses (sphere, cube and cylinder) of hard NdFeB magnets. (Row 2) Class RMF: Rotating magnetic field with three subclasses (helix microrobot, soft magnetic sheet microrobot, cube microrobot). (Row 3) Class OMF: Oscillating magnetic field with two subclasses (chain-like swimmer, one-armed flagella swimmer with magnetic head).
:::
[R]{.IEEEPARstart}[ecently]{} untethered mobile magnetic microrobots have been proposed for a wide range of biomedical applications (drug delivery, clot removal, tissue regeneration) @li2017micro due to their small size and ability to operate in confined spaces and hard-to-reach environments @chung2021magnetically. In endovascular navigation, real-time localization and tracking of microrobots are essential for achieving targeted navigation through imaging feedback. To do so, various medical imaging technologies are being used for the detection and tracking of microrobots such as ultrasound (US) imaging, magnetic resonance imaging, computer tomography, infrared fluorescence imaging, X-ray, and positron emission tomography @pane2019imaging. Recently, there has been increasing attention towards the navigation of magnetic microrobots using active mode US imaging endorsed by healthcare applications @scheggi2017magnetic. It can be explained by the fact that ultrasonic imaging is a noninvasive, versatile, low cost and well-established technique that is regularly used in medical settings.
The ultrasound B-mode imaging was successfully used at different scales to detect and to track in real-time different robots _in vitro_ and _in vivo_.
For example at the millimeter-scale, soft grippers @khalil2018mechanical, helical swimmers @hu2018smallscale or soft-bodied robots @ackermann2016detection have been investigated.
Different tracking techniques have been implemented to track the small-scale robots such as modified Markov chain Monte Carlo data association algorithm @zhang2021kalman, Kalman filtering @zhang2021kalman, and conventional neural networks @tiryaki2022deep. At the microscale, various types of microrobots were successfully demonstrated such as paramagnetic particles @khalil2014magneticbase, acoustically actuated microswimmer @chen2019ultrasound, self-propelled microjets @sanchez2014magnetic and bio-inspired magnetosperm @magdanz2020ironsperm in living tissue. However, the lack of B-mode resolution owing to poor microrobot echogenicity in image contrast, as well as the low signal-to-noise ratio (SNR), hinders the real-time tracking of microrobots in endovascular applications. To enhance spatial resolution, ultrasound phase analysis was implemented in @pane2021realtime to derive microrobot features such as size and position over time allowing to perform imaging and tracking of a low contrast microrobot in chicken breast.
Finally, Doppler-based ultrasound appears as a promising tool for tracking microrobots in echogenic and dynamic environments as biological tissues. In [@wang2020realtime; @wang2021ultrasound] a strategy to navigate a nanoparticle microswarm in real-time under ultrasound Doppler imaging guidance for active endovascular delivery was implemented in blood vessels. The Doppler signals near the microswarm in flowing blood environments were observed, and the microswarm was efficiently tracked and navigated in real-time using Doppler feedback. However, taking into the wide diversity of robot geometries and sizes, variability of swimming principles, and robot material echogenicity properties, the proposed state-of-the-art real-time detection and tracking methodologies face shadowing, low contrast, strong attenuation across an image, and fuzziness of vessel boundaries.
Microrobot detection and tracking in vessels is a challenging task, particularly when using US imaging. These challenges in US images include speckle noise, dynamic backgrounds, blur, and US image artifacts. This drives the employment of deep learning-based methods to enhance microrobot detection and tracking in vessels @liu2022capsule.
However, further research on deep learning detection of microrobots in US images is still not fully explored. Furthermore, convolution neural networks (CNN) models and frameworks may also be retrained using a customized dataset, offering deep learning techniques more flexibility than computer vision methods.
Moreover, deep learning-driven techniques yield promising performance for automatic detection and tracking of navigable magnetic microrobots using ultrasonic imaging @botross2022fully. But, there is no well-established benchmarking dataset. Typically, some research teams test and report the performance of their technique on their own private dataset utilizing experimental setups designed expressly for that purpose. Consequently, comparing the performance of multiple approaches or predicting how a given methodology will perform if the experimental setup/conditions change is challenging.
In this work, we propose a public large-scale benchmarking dataset ($USMicroMagset$), summarized in @fig-dataset. The dataset consists of ultrasound B-mode images of magnetic microrobots with different aspect ratios, sizes (1 mm to 300 µm), shapes, soft/rigid structures, and locomotion principles. This survey provides some insights into the challenges of detectability and trackability of a wide variety of magnetic microrobots navigating in microfluidic channels mimicking a vessel network.
In addition, this dataset is used to perform a comprehensive survey of deep learning-based microrobot detection and tracking in ultrasonic B-mode images. Based on these comparative analyses [@srivastava2021comparative; @marvasti-zadeh2022deep], we have extracted the best four detectors and the best four trackers. Then we evaluated these detectors and trackers on our dataset $USMicroMagset$. Finally, using the best detector and tracker algorithms, we evaluated each microrobot under real-time challenging scenarios simulating in vivo imaging problems such as changing ultrasound parameters, changing speed of microrobot motion, partial and full occlusion, and out-of-plane motion.
The paper is organized as follows: @sec-benchmarking describes the datasets and the methods used in the proposed work. Section 3 describes the deep learning detectors and trackers. Section 4 made a comparative assessment of the different detectors and trackers before concluding.
# Microrobot Benchmarking {#sec-benchmarking}
## Classes
In the proposed $USMicroMagset$ dataset, there are three different classes describing three operating principles of hard and soft magnetic microrobots. Our dataset is composed of 40k images subdivided into three classes of magnetic microrobots.
@fig-dataset summarizes the locomotion principles for each class of magnetic microrobot used in the datasets. We recorded 5k images for each microrobot prototype (80\% for training and 20\% for testing). All images have been annotated manually by an experienced expert.
## Microrobot principle
Basically, governing equations of magnetized hard and soft microrobots controlled by magnetic fields are as follows :
\begin{eqnarray}
{\vb{\textbf{F}}_{m}}&= \left(\vb{M}\cdot \nabla\right) \vb{B} \label{eq:Fm} \\
\vb{\textbf{T}_{m}}&= \left(\vb{M}\times\vb{B}\right) \label{eq:Tm}
\end{eqnarray}
where $\vb{\textbf{T}_{m}}$ is the resultant magnetic torque; $\vb{\textbf{F}_{m}}$ is the resultant magnetic force; $\vb{M}$ is the magnetic moment of the object; $\vb{B}$ is the applied magnetic field. Depending on the actuating magnetic fields, three classes have been identified and tested:
### Steering magnetic field (SMF) class
The first class consists of three subclasses of force-driven microrobots (Row\;1 in @fig-dataset) using various shapes of hard NdFeB magnets (spheres, cubes, and cylinders).
The steering motion relies on the use of SMF induced by three-axis Maxwell pair coils.
The resultant steering force $\vb{\textbf{F}_{m}}$ provides a linear steering motion of the microrobot [@kummer2010octomag; @mathieu2010steeringa; @ghanbari2014electromagnetic]
:::{.center data-latex=""}
**Full text are available from [IEEEXplore^®^](https://ieeexplore.ieee.org/document/10093014/)**
:::
::: {.content-visible when-format="pdf"}
# References {-}
:::

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 KiB

BIN
fig1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
ieee_template.pdf Normal file

Binary file not shown.

304
ieee_template.qmd Normal file
View File

@@ -0,0 +1,304 @@
---
title: A Sample Article Using `quarto-ieee` for IEEE Journal and Transactions
format:
ieee-pdf:
keep-tex: true
ieee-html: default
author:
- id: vplantev
name: Valere Plantevin
affiliations:
- name: UQAC
department: Laboratoire Prisme
city: Saguenay
country: Canada
orcid: 0000-0000-0000-0000
email: vplantev@uqac.ca
attributes:
corresponding: true
bio: |
Use `IEEEbiography` with figure as option and
the author name as the argument followed by the biography text.
- name: John Doe
affiliations:
- name: Anonymous University
bio: |
Use `IEEEbiographynophoto` and the author name
as the argument followed by the biography text.
note: "Template created June 23, 2023; revised `r format(Sys.Date(),format='%B %d, %Y')`."
abstract: |
This document describes the most common article elements and how to use the
`quarto-ieee` class with Pandoc/Quarto-Markdown to produce files that are
suitable for submission to IEEE journals.
`quarto-ieee` can produce conference, journal, and technical note (correspondence)
papers with a suitable choice of class options.
It intends to generate PDF and HTML outputs that closely mimick what IEEE would generate.
keywords: [IEEE, IEEEtran, journal, Quarto, Pandoc, template]
#funding:
funding:
statement: "The `quarto-ieee` template is freely available under the MIT license on github: <https://github.com/dfolio/quarto-ieee>."
pageheader:
left: Journal XXX, Month Year
right: 'D. Folio: A Sample Article Using quarto-ieee'
bibliography: bibliography.bib
date: 2023-06-23
pdf: https://github.com/dfolio/quarto-ieee/blob/main/template.pdf
citation:
container-title: GitHUB
page: 1-3
type: software
issued: 2023-06-23
url: https://github.com/dfolio/quarto-ieee
pdf-url: https://github.com/dfolio/quarto-ieee/template.pdf
---
# Introduction {#sec-intro}
[T]{.IEEEPARstart}[his]{}
file is intended to serve as a "sample article file"
for IEEE journal papers produced with (Pandoc/Quarto)-Markdown using `IEEEtran.cls` version 1.8b and later for the PDF output.
It is based on `bare_jrnl_new_sample4.tex` provided by IEEE Publication Technology, Staff and available from <https://template-selector.ieee.org/>.
The most common elements are covered in the simplified and updated instructions in `New_IEEEtran_how-to.pdf`.
For less common elements you can refer back to the original `IEEEtran_HOWTO.pdf`.
It is assumed that the reader has a basic working knowledge of {{< latex >}} @mittelbach2023latex and of (Pandoc/Quarto)-Markdown [@MacFarlane_Pandoc; @Allaire_Quarto_2022] markup.
# The Design, Intent, and Limitations of this Templates
The `quarto-ieee` template is intended to **approximate the final look and page length of the articles/papers** either in PDF output or HTML output.
**They are NOT intended to be the final produced work that is displayed in print or on IEEEXplore^®^**.
They will help to give the authors an approximation of the number of pages and layout that will be in the final version.
## Unsuported feature and limitations
Although most of the {{< latex >}} and `IEEEtran.cls` commands and environment are supported,
there are some limitations when trying to export to a format other than PDF (e.g. HTML output).
For PDF output, the reader can use the {{< latex >}} command directly. However, this may break other output formats.
\
It can be can reported the following limitations of the `quarto-ieee` template:
- Several authors with same affiliation produce weird output.
In such case, it is recommended to use `note` and `tex-author-no-affiliation: true`.
- For `PDF` output
- `quarto-ieee` use a hack to handle the `longtable` issue with 2-column {{< latex >}} documents[^issues-1023].
But, in some cases, a page overflow may occur (see also @sec-tables).
- For `HTML` output
- The default Quarto toc is used, so the table of contents (toc) display is not the same as on [IEEEXplore<sup>®</sup>].
- Footnote are put at the end of document, while on [IEEEXplore<sup>®</sup>] there are placed in the accordion.
- Figures are not placed in the accordion.
- [IEEEXplore<sup>®</sup>] specifics (e.g. citation metrics, etc.)
- The `HTML` output is a Quarto citeable article @quarto-citation, so a citation appendix is automatically added to the article end.
## Contributing
If you want to improve the `quarto-ieee` template or need some specific features do not hesitate to submit Pull Request[^PR] (it is considered good practice to open an issue for discussion before working on a pull request for a new feature).
[^PR]: Go to the PR page: <https://github.com/dfolio/quarto-ieee/pulls>
# Some random text
For some of the remainder of this sample we will use dummy text to fill out paragraphs rather than use live text that may violate a copyright.
\IEEEpubidadjcol\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus nisl eget tempor porta. Proin dapibus dictum quam a commodo. Mauris congue scelerisque eros a porta. Proin blandit nulla sapien, et pretium justo dictum non. Vivamus ultricies, elit eu posuere placerat, sapien est condimentum nisl, at tincidunt tortor dolor ac ligula. Suspendisse pulvinar libero quis eros finibus sodales. Vivamus mattis est eget imperdiet luctus. Morbi eget posuere metus. Nam egestas elit lectus, eu tincidunt odio viverra sed. Sed sit amet metus rutrum, ultricies elit in, finibus felis. Integer lobortis dui ante, eget placerat lorem laoreet eu.
Nullam mi ligula, luctus a orci ut, tincidunt varius augue. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Donec sed sem risus. Nam eleifend ultrices elit, vitae posuere tellus interdum et. Nam id nisl at elit malesuada malesuada. Suspendisse viverra ipsum libero, vel pharetra sem maximus sed. Nunc vel est fringilla, rutrum diam eu, egestas quam. Vivamus lobortis blandit velit, commodo finibus mauris. Quisque vel lacus ipsum. Pellentesque quis nulla ipsum.
Aenean in hendrerit quam. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aliquam tincidunt vehicula dignissim. In quis aliquet lectus, ac vestibulum elit. Quisque a magna viverra quam viverra faucibus. Nulla ornare tortor at mollis viverra. Curabitur vel porta dui. Etiam ipsum elit, egestas eget lacus nec, laoreet iaculis lacus. In iaculis risus ac tincidunt viverra. Maecenas tempor iaculis odio quis aliquet.
\
Maecenas ac posuere turpis. Fusce est dui, dapibus sed odio eget, eleifend facilisis felis. Nam gravida varius enim, ornare tincidunt urna ullamcorper ut. Donec sit amet eros ac lacus placerat rutrum ut non dolor. Nulla tincidunt nunc massa, sed euismod dui feugiat vitae. Integer tempus risus rutrum tellus interdum, eu aliquet sapien rutrum. Nunc feugiat varius lacus sed laoreet. Integer euismod tellus nisi, id scelerisque sem sagittis eu. Suspendisse at orci vel neque varius tempor nec vitae odio. Integer elementum elementum fermentum. Morbi in turpis cursus, lacinia arcu et, semper orci.
# Front matter
Most Quarto's authors and affiliations schemes @quarto-funding are supported in the YAML front matter to render authors as requested by IEEE journals in PDF and HTML outputs.
When provided to an author, the `note` entry is rendered as a `\thanks{}` in `PDF` output (ignored in `HTML` output).
Additionally, the reader may add to an author a `photo: path/to/photograph.png` with a `bio` metadata entries to generate a `IEEEbiography`, while a sole `bio` generates a `IEEEbiographynophoto` (these features is used both in `PDF` and `HTML` outputs).
\
The `funding` entry is also used in both PDF and HTML outputs @quarto-funding.
At version v1.1.1, only the `funding.statement` is used.
Similarly, `citation` entry is supported to make the HTML output a "_citeable article_" @quarto-citation.
# Some Common Elements
## Sections and Subsections
As stated in the `IEEEtran` template enumeration of section headings is desirable, but not required.
When numbered, it should be consistent throughout the article, that is, all headings and all levels of section headings in the article should be enumerated.
Primary headings are designated with Roman numerals, secondary with capital letters, tertiary with Arabic numbers; and quaternary with lowercase letters.
References and Acknowledgment headings are unlike all other section headings in text.
They are never enumerated.
They are simply primary headings without labels, regardless of whether the other headings in the article are enumerated.
The following @sec-Markdown shows some basic usage and capabilities of `quarto-ieee`.
## Markdown basics {#sec-Markdown}
The reader can easily find many documentations on how to write using the (Pandoc/Quarto) Markdown syntax.
The `quarto-ieee` template relies mainly on the Markdown markup supported by Quarto @quarto-markdown, which is build based on Pandoc [@MacFarlane_Pandoc; @Allaire_Quarto_2022].
Below are some basic examples of usage of the Markdown markup (to save space, it is better to consult the original Quarto document `template.qmd`).
### Display equations
To write equations use `$` delimiters for inline formula or `$$` for block one.
To number the equations, it is recommended to use classic equation environments
provided by {{< latex >}} and to use `\eqref{}` (or `\ref{}`) for cross-referencing.
For example:
\begin{equation}\label{eq:1}
{{\chi}_a}=\text{diag}\left(\frac{{\chi}}{1+n_a{\chi}},\frac{{\chi}}{1+n_b{\chi}},\frac{{\chi}}{1+n_b{\chi}}\right),
\end{equation}
\begin{align}
a & = b + c \label{eq:2} \\
c & = d + e \label{eq:3}
\end{align}
\begin{equation}\label{eq:4}
\begin{cases}
1&=n_a+2n_b \\
n_a&=\dfrac{1-{\varepsilon}^2}{2{\varepsilon}^3}\left(\log\left(\dfrac{1+{\varepsilon}}{1-{\varepsilon}}\right)-2{\varepsilon}\right)
\end{cases}
\end{equation}
The above equation is cross-referenced as \eqref{eq:1}, \eqref{eq:2}, \eqref{eq:3} and \eqref{eq:4}.
For now, avoid using the Quarto cross-references that use of `$$ $$` with `#eq-` label.
It works properly only for PDF output, but there are some issues with HTML[^issues-2275] output.
::: {.remark}
`quarto-ieee` template also supports the [`mhchem`](https://ctan.org/pkg/mhchem) (for chemical equation)
and [`physics`](https://ctan.org/pkg/physics) (for flexible macros for typesetting equations) {{< latex >}} packages
and [Mathjax extensions](https://docs.mathjax.org/en/latest/input/tex/extensions/index.html).
:::
### Theorems, Proofs and Remarks
To include a reference-able theorem, create a div with a `#thm-` label.
A theorem name is specified via the first heading in the block.
For example:
::: {#thm-line}
## Line
The equation of any straight line, called a linear equation, can be written as:
$$
y = mx + b
$$
:::
The theorem is cross-referenced as @thm-line.
There are a number of theorem variations supported by [Quarto](https://quarto.org/docs/authoring/cross-references.html#theorems-and-proofs), each with their own label prefix:
- `#thm-` for Theorem;
- `#lem-` for Lemma;
- `#cor-` for Corollary
- `#prp-` for Proposition;
- `#cnj-` for Conjecture;
- `#def-` for Definition;
- `#exm-` for Example;
- `#exr-` for Exercise.
The `proof`, `remark` and `solution` environments generally receive similar typesetting as theorems.
However they are not numbered (and therefore cannot be cross-referenced). To create these environments just use them as the class name of a div such as:
::: {.solution name="The solution"}
An example of solution environment.
:::
### Figures
An image with nonempty alt text will be rendered as a figure with a caption with Pandoc and Quarto.
Quarto includes a different features to simplify the use of figures and subfigures.
Here, it is recommended to use div block with `#fig-` label to embed your Figures.
:::{#fig-1}
![](fig1.png){width="30%"}
An example of figure.
:::
:::{#fig-2 layout-ncol=2}
![ ](fig1.png){#fig-2a}
![ ](fig1.png){#fig-2b}
An example with sub-figure.
:::
The figures is cross-referenced as @fig-2 and even the sub-figures as @fig-2b.
### Tables {#sec-tables}
Similarly, many kind of tables may be used with Pandoc and Quarto.
The latter also includes different features to simplify the table output.
To make tables cross-referenceable use a label with a `#tbl-` prefix.
\
However, it is recommended to avoid using the commonly used single Markdown table known as a 'pipe table'.
In fact, Pandoc Markdown uses the {{< latex >}} `longtable` package, which does not support the two-column mode, which is required for most `IEEEtran` journals.
`quarto-ieee` uses a hack to temporarily switch to one-column mode.
However, this hack may break the page layout.
To overcome this issue, a basic way is to use code cells (as for @tbl-other).
Quarto is a multi-language and it uses `Knitr` to execute `R` code and can execute Python code blocks within Markdown.
::: {#tbl-panel layout-ncol=2}
| Col1 | Col2 | Col3 |
|------|------|------|
| A | B | C |
| E | F | G |
| A | G | G |
: First Table {#tbl-first}
| Col1 | Col2 | Col3 |
|------|------|------|
| A | B | C |
| E | F | G |
| A | G | G |
: Second Table {#tbl-second}
Main Caption
:::
The Tables are cross-referenced as @tbl-panel for details, especially @tbl-second.
There is also @tbl-other.
## Bibliography
IEEE journal should normally use IEEEtran[^bibtex] {{< bibtex >}} style.
Nevertheless, Pandoc and Quarto do support {{< bibtex >}} with natbib or biblatex. However, neither is officially recommended for normal IEEE use.
For this reason, `quarto-ieee` uses `citeproc` with the `ieee` CSL style sheet.
[^bibtex]: IEEEtran BibTeX style support page is: <http://www.michaelshell.org/tex/ieeetran/bibtex/>
# Conclusions
The conclusion goes here.
# Acknowledgment {-}
This should be a simple paragraph before the References to
thank those individuals and institutions who have supported
your work on this article.
[]{.appendix options="An Appendix"}
Use `[]{.appendix options="An Appendix"}` markup if you have a single appendix.
`IEEEtran` state that to do not use `\section{}` anymore after `\appendix`.
::: {.content-visible when-format="pdf"}
# References {-}
:::
[^issues-1023]: ["_[longtable not compatible with 2-column LaTeX documents](https://github.com/jgm/pandoc/issues/1023>)_",
[^issues-2275]: See the issue here <https://github.com/quarto-dev/quarto-cli/issues/2275>
[IEEEXplore<sup>®</sup>]: <https://ieeexplore.ieee.org/>

784
ieee_template.tex Normal file
View File

@@ -0,0 +1,784 @@
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do ***
% *** not appear when using other class files. ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/
%%*************************************************************************
%% 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 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. **
%%
%% File list of work: IEEEtran.cls, New_IEEEtran_how-to.pdf, bare_jrnl_new_sample4.tex,
%%*************************************************************************
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor}
% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
\documentclass[
journal,
]{IEEEtran}%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[journal]{../sty/IEEEtran}
\usepackage[cmex10]{amsmath}
\usepackage{amssymb}
\usepackage{iftex}
\ifPDFTeX
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
\usepackage{unicode-math} % this also loads fontspec
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
%\usepackage{lmodern}
\ifPDFTeX\else
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\parindent 1.0em
\ifCLASSOPTIONcompsoc
\parindent 1.5em
\fi
\makeatother
\usepackage{xcolor}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\setcounter{secnumdepth}{5}
% Make \paragraph and \subparagraph free-standing
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
\usepackage{longtable,booktabs,array}
\newcounter{none} % for unnumbered tables
\usepackage{calc} % for calculating minipage widths
% Correct order of tables after \paragraph or \subparagraph
\usepackage{etoolbox}
\makeatletter
\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
\makeatother
% Allow footnotes in longtable head/foot
\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
\makesavenoteenv{longtable}
\usepackage{graphicx}
\makeatletter
\newsavebox\pandoc@box
\newcommand*\pandocbounded[1]{% scales image to fit in text height/width
\sbox\pandoc@box{#1}%
\Gscale@div\@tempa{\textheight}{\dimexpr\ht\pandoc@box+\dp\pandoc@box\relax}%
\Gscale@div\@tempb{\linewidth}{\wd\pandoc@box}%
\ifdim\@tempb\p@<\@tempa\p@\let\@tempa\@tempb\fi% select the smaller of both
\ifdim\@tempa\p@<\p@\scalebox{\@tempa}{\usebox\pandoc@box}%
\else\usebox{\pandoc@box}%
\fi%
}
% Set default figure placement to htbp
\def\fps@figure{htbp}
\makeatother
% definitions for citeproc citations
\NewDocumentCommand\citeproctext{}{}
\NewDocumentCommand\citeproc{mm}{%
\begingroup\def\citeproctext{#2}\cite{#1}\endgroup}
\makeatletter
% allow citations to break across lines
\let\@cite@ofmt\@firstofone
% avoid brackets around text for \cite:
\def\@biblabel#1{}
\def\@cite#1#2{{#1\if@tempswa , #2\fi}}
\makeatother
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing
{\begin{list}{}{%
\setlength{\itemindent}{0pt}
\setlength{\leftmargin}{0pt}
\setlength{\parsep}{0pt}
% turn on hanging indent if param 1 is 1
\ifodd #1
\setlength{\leftmargin}{\cslhangindent}
\setlength{\itemindent}{-1\cslhangindent}
\fi
% set entry spacing
\setlength{\itemsep}{#2\baselineskip}}}
{\end{list}}
\usepackage{calc}
\newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\usepackage{physics}
\usepackage[version=3]{mhchem}
\usepackage{orcidlink}
\usepackage{float}
\floatplacement{table}{htb}
\makeatletter
\@ifpackageloaded{caption}{}{\usepackage{caption}}
\AtBeginDocument{%
\ifdefined\contentsname
\renewcommand*\contentsname{Table of contents}
\else
\newcommand\contentsname{Table of contents}
\fi
\ifdefined\listfigurename
\renewcommand*\listfigurename{List of Figures}
\else
\newcommand\listfigurename{List of Figures}
\fi
\ifdefined\listtablename
\renewcommand*\listtablename{List of Tables}
\else
\newcommand\listtablename{List of Tables}
\fi
\ifdefined\figurename
\renewcommand*\figurename{Fig.}
\else
\newcommand\figurename{Fig.}
\fi
\ifdefined\tablename
\renewcommand*\tablename{Table}
\else
\newcommand\tablename{Table}
\fi
}
\@ifpackageloaded{float}{}{\usepackage{float}}
\floatstyle{ruled}
\@ifundefined{c@chapter}{\newfloat{codelisting}{h}{lop}}{\newfloat{codelisting}{h}{lop}[chapter]}
\floatname{codelisting}{Listing}
\newcommand*\listoflistings{\listof{codelisting}{List of Listings}}
\usepackage{amsthm}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\theoremstyle{remark}
\AtBeginDocument{\renewcommand*{\proofname}{Proof}}
\newtheorem*{remark}{Remark}
\newtheorem*{solution}{Solution}
\newtheorem{refremark}{Remark}[section]
\newtheorem{refsolution}{Solution}[section]
\makeatother
\makeatletter
\makeatother
\makeatletter
\@ifpackageloaded{caption}{}{\usepackage{caption}}
\@ifpackageloaded{subcaption}{}{\usepackage{subcaption}}
\makeatother
\usepackage[skip=2pt,font=footnotesize]{caption}
%\captionsetup{format=myformat}
\makeatletter
%\setlength{\cslhangindent}{0pt plus .5pt}
\providecommand{\bibfont}{\footnotesize}
\let\CSLReferences@rig=\CSLReferences
\renewcommand{\CSLReferences}[2]{
\bibfont\settowidth\csllabelwidth{[999]}
\CSLReferences@rig{#1}{#2}
\vskip 0.3\baselineskip plus 0.1\baselineskip minus 0.1\baselineskip%
}
\makeatother
\ifLuaTeX
\usepackage{selnolig} % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
pdftitle={A Sample Article Using quarto-ieee for IEEE Journal and Transactions},
pdfauthor={Valere Plantevin; John Doe},
pdfkeywords={IEEE, IEEEtran, journal, Quarto, Pandoc, template},
colorlinks=true,
linkcolor={blue},
filecolor={Maroon},
citecolor={Blue},
urlcolor={Blue},
pdfcreator={LaTeX via pandoc}}
% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex). ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )
% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}
%
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
\title{A Sample Article Using \texttt{quarto-ieee} for IEEE Journal and
Transactions}
\author{
\thanks{The \texttt{quarto-ieee} template is freely available under the
MIT license on github: \url{https://github.com/dfolio/quarto-ieee}.}
Valere Plantevin\orcidlink{0000-0000-0000-0000}
and~John Doe%
\thanks{Valere Plantevin is with Laboratoire
Prisme, UQAC, Saguenay Canada%
 Corresponding author: vplantev@uqac.ca
}
%by-author.affiliations
\thanks{John Doe is with Anonymous University%
}
%by-author.affiliations
\thanks{Template created June 23, 2023; revised
\texttt{r\ format(Sys.Date(),format=\textquotesingle{}\%B\ \%d,\ \%Y\textquotesingle{})}.}
}
\begin{document}
% The paper headers
\markboth{Journal XXX, Month Year}{D. Folio: A Sample Article Using
quarto-ieee}
% use for special paper notices
% make the title area
\maketitle
% As a general rule, do not put math, special symbols or citations
% in the abstract or keywords.
\begin{abstract}
This document describes the most common article elements and how to use
the \texttt{quarto-ieee} class with Pandoc/Quarto-Markdown to produce
files that are suitable for submission to IEEE journals.
\texttt{quarto-ieee} can produce conference, journal, and technical note
(correspondence) papers with a suitable choice of class options. It
intends to generate PDF and HTML outputs that closely mimick what IEEE
would generate.
\end{abstract}
% Note that keywords are not normally used for peerreview papers.
\begin{IEEEkeywords}
IEEE, IEEEtran, journal, Quarto, Pandoc, template
\end{IEEEkeywords}
% For peer review papers, you can put extra information on the cover
% page as needed:
% \ifCLASSOPTIONpeerreview
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
% \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
% \IEEEpeerreviewmaketitle
\section{Introduction}\label{sec-intro}
\IEEEPARstart{T}{his} file is intended to serve as a ``sample article
file'' for IEEE journal papers produced with (Pandoc/Quarto)-Markdown
using \texttt{IEEEtran.cls} version 1.8b and later for the PDF output.
It is based on \texttt{bare\_jrnl\_new\_sample4.tex} provided by IEEE
Publication Technology, Staff and available from
\url{https://template-selector.ieee.org/}. The most common elements are
covered in the simplified and updated instructions in
\texttt{New\_IEEEtran\_how-to.pdf}. For less common elements you can
refer back to the original \texttt{IEEEtran\_HOWTO.pdf}. It is assumed
that the reader has a basic working knowledge of {\LaTeX}
\citeproc{ref-mittelbach2023latex}{{[}1{]}} and of
(Pandoc/Quarto)-Markdown \citeproc{ref-MacFarlane_Pandoc}{{[}2{]}},
\citeproc{ref-Allaire_Quarto_2022}{{[}3{]}} markup.
\section{The Design, Intent, and Limitations of this
Templates}\label{the-design-intent-and-limitations-of-this-templates}
The \texttt{quarto-ieee} template is intended to \textbf{approximate the
final look and page length of the articles/papers} either in PDF output
or HTML output. \textbf{They are NOT intended to be the final produced
work that is displayed in print or on IEEEXplore\textsuperscript{®}}.
They will help to give the authors an approximation of the number of
pages and layout that will be in the final version.
\subsection{Unsuported feature and
limitations}\label{unsuported-feature-and-limitations}
Although most of the {\LaTeX} and \texttt{IEEEtran.cls} commands and
environment are supported, there are some limitations when trying to
export to a format other than PDF (e.g.~HTML output). For PDF output,
the reader can use the {\LaTeX} command directly. However, this may
break other output formats.\\
It can be can reported the following limitations of the
\texttt{quarto-ieee} template: - Several authors with same affiliation
produce weird output. In such case, it is recommended to use
\texttt{note} and \texttt{tex-author-no-affiliation:\ true}. - For
\texttt{PDF} output - \texttt{quarto-ieee} use a hack to handle the
\texttt{longtable} issue with 2-column {\LaTeX} documents\footnote{{[}``\emph{\href{https://github.com/jgm/pandoc/issues/1023\%3E}{longtable
not compatible with 2-column LaTeX documents}}'',}. But, in some
cases, a page overflow may occur (see also Section~\ref{sec-tables}). -
For \texttt{HTML} output - The default Quarto toc is used, so the table
of contents (toc) display is not the same as on
\href{https://ieeexplore.ieee.org/}{IEEEXplore®}. - Footnote are put at
the end of document, while on
\href{https://ieeexplore.ieee.org/}{IEEEXplore®} there are placed in the
accordion. - Figures are not placed in the accordion. -
\href{https://ieeexplore.ieee.org/}{IEEEXplore®} specifics
(e.g.~citation metrics, etc.) - The \texttt{HTML} output is a Quarto
citeable article \citeproc{ref-quarto-citation}{{[}4{]}}, so a citation
appendix is automatically added to the article end.
\subsection{Contributing}\label{contributing}
If you want to improve the \texttt{quarto-ieee} template or need some
specific features do not hesitate to submit Pull Request\footnote{Go to
the PR page: \url{https://github.com/dfolio/quarto-ieee/pulls}} (it is
considered good practice to open an issue for discussion before working
on a pull request for a new feature).
\section{Some random text}\label{some-random-text}
For some of the remainder of this sample we will use dummy text to fill
out paragraphs rather than use live text that may violate a copyright.
\IEEEpubidadjcol\\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus
nisl eget tempor porta. Proin dapibus dictum quam a commodo. Mauris
congue scelerisque eros a porta. Proin blandit nulla sapien, et pretium
justo dictum non. Vivamus ultricies, elit eu posuere placerat, sapien
est condimentum nisl, at tincidunt tortor dolor ac ligula. Suspendisse
pulvinar libero quis eros finibus sodales. Vivamus mattis est eget
imperdiet luctus. Morbi eget posuere metus. Nam egestas elit lectus, eu
tincidunt odio viverra sed. Sed sit amet metus rutrum, ultricies elit
in, finibus felis. Integer lobortis dui ante, eget placerat lorem
laoreet eu.
Nullam mi ligula, luctus a orci ut, tincidunt varius augue. Vestibulum
ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
curae; Donec sed sem risus. Nam eleifend ultrices elit, vitae posuere
tellus interdum et. Nam id nisl at elit malesuada malesuada. Suspendisse
viverra ipsum libero, vel pharetra sem maximus sed. Nunc vel est
fringilla, rutrum diam eu, egestas quam. Vivamus lobortis blandit velit,
commodo finibus mauris. Quisque vel lacus ipsum. Pellentesque quis nulla
ipsum.
Aenean in hendrerit quam. Orci varius natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Aliquam tincidunt vehicula
dignissim. In quis aliquet lectus, ac vestibulum elit. Quisque a magna
viverra quam viverra faucibus. Nulla ornare tortor at mollis viverra.
Curabitur vel porta dui. Etiam ipsum elit, egestas eget lacus nec,
laoreet iaculis lacus. In iaculis risus ac tincidunt viverra. Maecenas
tempor iaculis odio quis aliquet.\\
Maecenas ac posuere turpis. Fusce est dui, dapibus sed odio eget,
eleifend facilisis felis. Nam gravida varius enim, ornare tincidunt urna
ullamcorper ut. Donec sit amet eros ac lacus placerat rutrum ut non
dolor. Nulla tincidunt nunc massa, sed euismod dui feugiat vitae.
Integer tempus risus rutrum tellus interdum, eu aliquet sapien rutrum.
Nunc feugiat varius lacus sed laoreet. Integer euismod tellus nisi, id
scelerisque sem sagittis eu. Suspendisse at orci vel neque varius tempor
nec vitae odio. Integer elementum elementum fermentum. Morbi in turpis
cursus, lacinia arcu et, semper orci.
\section{Front matter}\label{front-matter}
Most Quarto's authors and affiliations schemes
\citeproc{ref-quarto-funding}{{[}5{]}} are supported in the YAML front
matter to render authors as requested by IEEE journals in PDF and HTML
outputs. When provided to an author, the \texttt{note} entry is rendered
as a \texttt{\textbackslash{}thanks\{\}} in \texttt{PDF} output (ignored
in \texttt{HTML} output). Additionally, the reader may add to an author
a \texttt{photo:\ path/to/photograph.png} with a \texttt{bio} metadata
entries to generate a \texttt{IEEEbiography}, while a sole \texttt{bio}
generates a \texttt{IEEEbiographynophoto} (these features is used both
in \texttt{PDF} and \texttt{HTML} outputs).\\
The \texttt{funding} entry is also used in both PDF and HTML outputs
\citeproc{ref-quarto-funding}{{[}5{]}}. At version v1.1.1, only the
\texttt{funding.statement} is used. Similarly, \texttt{citation} entry
is supported to make the HTML output a ``\emph{citeable
article}''~\citeproc{ref-quarto-citation}{{[}4{]}}.
\section{Some Common Elements}\label{some-common-elements}
\subsection{Sections and Subsections}\label{sections-and-subsections}
As stated in the \texttt{IEEEtran} template enumeration of section
headings is desirable, but not required. When numbered, it should be
consistent throughout the article, that is, all headings and all levels
of section headings in the article should be enumerated. Primary
headings are designated with Roman numerals, secondary with capital
letters, tertiary with Arabic numbers; and quaternary with lowercase
letters. References and Acknowledgment headings are unlike all other
section headings in text. They are never enumerated. They are simply
primary headings without labels, regardless of whether the other
headings in the article are enumerated.
The following Section~\ref{sec-Markdown} shows some basic usage and
capabilities of \texttt{quarto-ieee}.
\subsection{Markdown basics}\label{sec-Markdown}
The reader can easily find many documentations on how to write using the
(Pandoc/Quarto) Markdown syntax. The \texttt{quarto-ieee} template
relies mainly on the Markdown markup supported by Quarto
\citeproc{ref-quarto-markdown}{{[}6{]}}, which is build based on Pandoc
\citeproc{ref-MacFarlane_Pandoc}{{[}2{]}},
\citeproc{ref-Allaire_Quarto_2022}{{[}3{]}}. Below are some basic
examples of usage of the Markdown markup (to save space, it is better to
consult the original Quarto document \texttt{template.qmd}).
\subsubsection{Display equations}\label{display-equations}
To write equations use \texttt{\$} delimiters for inline formula or
\texttt{\$\$} for block one. To number the equations, it is recommended
to use classic equation environments provided by {\LaTeX} and to use
\texttt{\textbackslash{}eqref\{\}} (or \texttt{\textbackslash{}ref\{\}})
for cross-referencing. For example: \begin{equation}\label{eq:1}
{{\chi}_a}=\text{diag}\left(\frac{{\chi}}{1+n_a{\chi}},\frac{{\chi}}{1+n_b{\chi}},\frac{{\chi}}{1+n_b{\chi}}\right),
\end{equation} \begin{align}
a & = b + c \label{eq:2} \\
c & = d + e \label{eq:3}
\end{align}
\begin{equation}\label{eq:4}
\begin{cases}
1&=n_a+2n_b \\
n_a&=\dfrac{1-{\varepsilon}^2}{2{\varepsilon}^3}\left(\log\left(\dfrac{1+{\varepsilon}}{1-{\varepsilon}}\right)-2{\varepsilon}\right)
\end{cases}
\end{equation} The above equation is cross-referenced as \eqref{eq:1},
\eqref{eq:2}, \eqref{eq:3} and \eqref{eq:4}.
For now, avoid using the Quarto cross-references that use of
\texttt{\$\$\ \$\$} with \texttt{\#eq-} label. It works properly only
for PDF output, but there are some issues with HTML\footnote{See the
issue here \url{https://github.com/quarto-dev/quarto-cli/issues/2275}}
output.
\begin{remark}
\texttt{quarto-ieee} template also supports the
\href{https://ctan.org/pkg/mhchem}{\texttt{mhchem}} (for chemical
equation) and \href{https://ctan.org/pkg/physics}{\texttt{physics}} (for
flexible macros for typesetting equations) {\LaTeX} packages and
\href{https://docs.mathjax.org/en/latest/input/tex/extensions/index.html}{Mathjax
extensions}.
\end{remark}
\subsubsection{Theorems, Proofs and
Remarks}\label{theorems-proofs-and-remarks}
To include a reference-able theorem, create a div with a \texttt{\#thm-}
label. A theorem name is specified via the first heading in the block.
For example:
\begin{theorem}[Line]\protect\hypertarget{thm-line}{}\label{thm-line}
The equation of any straight line, called a linear equation, can be
written as:
\[
y = mx + b
\]
\end{theorem}
The theorem is cross-referenced as Theorem~\ref{thm-line}.
There are a number of theorem variations supported by
\href{https://quarto.org/docs/authoring/cross-references.html\#theorems-and-proofs}{Quarto},
each with their own label prefix:
\begin{itemize}
\tightlist
\item
\texttt{\#thm-} for Theorem;
\item
\texttt{\#lem-} for Lemma;
\item
\texttt{\#cor-} for Corollary
\item
\texttt{\#prp-} for Proposition;
\item
\texttt{\#cnj-} for Conjecture;
\item
\texttt{\#def-} for Definition;
\item
\texttt{\#exm-} for Example;
\item
\texttt{\#exr-} for Exercise.
\end{itemize}
The \texttt{proof}, \texttt{remark} and \texttt{solution} environments
generally receive similar typesetting as theorems. However they are not
numbered (and therefore cannot be cross-referenced). To create these
environments just use them as the class name of a div such as:
\begin{solution}[The solution]
An example of solution environment.
\end{solution}
\subsubsection{Figures}\label{figures}
An image with nonempty alt text will be rendered as a figure with a
caption with Pandoc and Quarto. Quarto includes a different features to
simplify the use of figures and subfigures. Here, it is recommended to
use div block with \texttt{\#fig-} label to embed your Figures.
\begin{figure}
\centering{
\includegraphics[width=0.3\linewidth,height=\textheight,keepaspectratio]{fig1.png}
}
\caption{\label{fig-1}An example of figure.}
\end{figure}%
\begin{figure}
\begin{minipage}[t]{0.50\linewidth}
\centering{
\pandocbounded{\includegraphics[keepaspectratio]{fig1.png}}
}
\subcaption{\label{fig-2a}}
\end{minipage}%
%
\begin{minipage}[t]{0.50\linewidth}
\centering{
\pandocbounded{\includegraphics[keepaspectratio]{fig1.png}}
}
\subcaption{\label{fig-2b}}
\end{minipage}%
\caption{\label{fig-2}An example with sub-figure.}
\end{figure}%
The figures is cross-referenced as Fig.~\ref{fig-2} and even the
sub-figures as Fig.~\ref{fig-2b}.
\subsubsection{Tables}\label{sec-tables}
Similarly, many kind of tables may be used with Pandoc and Quarto. The
latter also includes different features to simplify the table output. To
make tables cross-referenceable use a label with a \texttt{\#tbl-}
prefix.\\
However, it is recommended to avoid using the commonly used single
Markdown table known as a `pipe table'. In fact, Pandoc Markdown uses
the {\LaTeX} \texttt{longtable} package, which does not support the
two-column mode, which is required for most \texttt{IEEEtran} journals.
\texttt{quarto-ieee} uses a hack to temporarily switch to one-column
mode. However, this hack may break the page layout. To overcome this
issue, a basic way is to use code cells (as for \textbf{?@tbl-other}).
Quarto is a multi-language and it uses \texttt{Knitr} to execute
\texttt{R} code and can execute Python code blocks within Markdown.
\begin{table}
\caption{\label{tbl-panel}Main Caption}
\begin{minipage}[t]{0.50\linewidth}
\subcaption{\label{tbl-first}First Table}
\centering{
\begin{tabular}{lll}
\toprule
Col1 & Col2 & Col3\\
\midrule
A & B & C\\
E & F & G\\
A & G & G\\
\bottomrule
\end{tabular}
}
\end{minipage}%
%
\begin{minipage}[t]{0.50\linewidth}
\subcaption{\label{tbl-second}Second Table}
\centering{
\begin{tabular}{lll}
\toprule
Col1 & Col2 & Col3\\
\midrule
A & B & C\\
E & F & G\\
A & G & G\\
\bottomrule
\end{tabular}
}
\end{minipage}%
\end{table}%
The Tables are cross-referenced as Table~\ref{tbl-panel} for details,
especially Table~\ref{tbl-second}. There is also \textbf{?@tbl-other}.
\subsection{Bibliography}\label{bibliography}
IEEE journal should normally use IEEEtran\footnote{IEEEtran BibTeX style
support page is:
\url{http://www.michaelshell.org/tex/ieeetran/bibtex/}}
\textsc{Bib}{\TeX} style. Nevertheless, Pandoc and Quarto do support
\textsc{Bib}{\TeX} with natbib or biblatex. However, neither is
officially recommended for normal IEEE use. For this reason,
\texttt{quarto-ieee} uses \texttt{citeproc} with the \texttt{ieee} CSL
style sheet.
\section{Conclusions}\label{conclusions}
The conclusion goes here.
\section*{Acknowledgment}\label{acknowledgment}
\addcontentsline{toc}{section}{Acknowledgment}
This should be a simple paragraph before the References to thank those
individuals and institutions who have supported your work on this
article.
\appendix[An Appendix]{}
Use \texttt{{[}{]}\{.appendix\ options="An\ Appendix"\}} markup if you
have a single appendix. \texttt{IEEEtran} state that to do not use
\texttt{\textbackslash{}section\{\}} anymore after
\texttt{\textbackslash{}appendix}.
\section*{References}\label{references}
\addcontentsline{toc}{section}{References}
\protect\phantomsection\label{refs}
\begin{CSLReferences}{0}{0}
\bibitem[\citeproctext]{ref-mittelbach2023latex}
\CSLLeftMargin{{[}1{]} }%
\CSLRightInline{F. Mittelbach and U. Fischer, \emph{The {LaTeX}
companion}, 3rd ed. {Addison Wesley Professional}, 2023. }
\bibitem[\citeproctext]{ref-MacFarlane_Pandoc}
\CSLLeftMargin{{[}2{]} }%
\CSLRightInline{J. MacFarlane, A. Krewinkel, and J. Rosenthal,
{``{Pandoc}.''} {[}Online{]}. Available:
\url{https://github.com/jgm/pandoc}}
\bibitem[\citeproctext]{ref-Allaire_Quarto_2022}
\CSLLeftMargin{{[}3{]} }%
\CSLRightInline{J. J. Allaire, C. Teague, C. Scheidegger, Y. Xie, and C.
Dervieux, {``{Quarto}.''} Jan-2022 {[}Online{]}. Available:
\url{https://github.com/quarto-dev/quarto-cli}}
\bibitem[\citeproctext]{ref-quarto-citation}
\CSLLeftMargin{{[}4{]} }%
\CSLRightInline{{``Quarto - {Creating Citeable Articles}.''}
{[}Online{]}. Available:
\url{https://quarto.org/docs/authoring/create-citeable-articles.html}.
{[}Accessed: 25-Oct-2023{]}}
\bibitem[\citeproctext]{ref-quarto-funding}
\CSLLeftMargin{{[}5{]} }%
\CSLRightInline{{``Quarto - {Front Matter}.''} {[}Online{]}. Available:
\url{https://quarto.org/docs/authoring/front-matter.html\#funding}.
{[}Accessed: 25-Oct-2023{]}}
\bibitem[\citeproctext]{ref-quarto-markdown}
\CSLLeftMargin{{[}6{]} }%
\CSLRightInline{{``Quarto - {Markdown Basics}.''} {[}Online{]}.
Available: \url{https://quarto.org/docs/authoring/markdown-basics}.
{[}Accessed: 25-Oct-2023{]}}
\end{CSLReferences}
% Can use something like this to put references on a page
% by themselves when using endfloat and the captionsoff option.
\ifCLASSOPTIONcaptionsoff
\newpage
\fi
% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}
% Uncomment when use biblatex with style=ieee
%\renewcommand{\bibfont}{\footnotesize} % for IEEE bibfont size
\pagebreak[3]
\begin{IEEEbiographynophoto}{Valere Plantevin}
Use \texttt{IEEEbiography} with figure as option and the author name as
the argument followed by the biography text.
\end{IEEEbiographynophoto}
\begin{IEEEbiographynophoto}{John Doe}
Use \texttt{IEEEbiographynophoto} and the author name as the argument
followed by the biography text.
\end{IEEEbiographynophoto}
% that's all folks
\end{document}

1025
template.html Normal file

File diff suppressed because it is too large Load Diff

BIN
template.pdf Normal file

Binary file not shown.

788
template.tex Normal file
View File

@@ -0,0 +1,788 @@
% *** Authors should verify (and, if needed, correct) their LaTeX system ***
% *** with the testflow diagnostic prior to trusting their LaTeX platform ***
% *** with production work. IEEE's font choices can trigger bugs that do ***
% *** not appear when using other class files. ***
% The testflow support page is at:
% http://www.michaelshell.org/tex/testflow/
%%*************************************************************************
%% 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 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. **
%%
%% File list of work: IEEEtran.cls, New_IEEEtran_how-to.pdf, bare_jrnl_new_sample4.tex,
%%*************************************************************************
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{dvipsnames,svgnames,x11names}{xcolor}
% Note that the a4paper option is mainly intended so that authors in
% countries using A4 can easily print to A4 and see how their papers will
% look in print - the typesetting of the document will not typically be
% affected with changes in paper size (but the bottom and side margins will).
% Use the testflow package mentioned above to verify correct handling of
% both paper sizes by the user's LaTeX system.
%
% Also note that the "draftcls" or "draftclsnofoot", not "draft", option
% should be used if it is desired that the figures are to be displayed in
% draft mode.
%
\documentclass[
journal,
]{IEEEtran}%
% If IEEEtran.cls has not been installed into the LaTeX system files,
% manually specify the path to it like:
% \documentclass[journal]{../sty/IEEEtran}
\usepackage[cmex10]{amsmath}
\usepackage{amssymb}
\usepackage{iftex}
\ifPDFTeX
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
\usepackage{unicode-math} % this also loads fontspec
\defaultfontfeatures{Scale=MatchLowercase}
\defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
%\usepackage{lmodern}
\ifPDFTeX\else
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
\usepackage[]{microtype}
\UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\parindent 1.0em
\ifCLASSOPTIONcompsoc
\parindent 1.5em
\fi
\makeatother
\usepackage{xcolor}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\setcounter{secnumdepth}{5}
% Make \paragraph and \subparagraph free-standing
\ifx\paragraph\undefined\else
\let\oldparagraph\paragraph
\renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
\fi
\ifx\subparagraph\undefined\else
\let\oldsubparagraph\subparagraph
\renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
\fi
\providecommand{\tightlist}{%
\setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}\usepackage{longtable,booktabs,array}
\usepackage{calc} % for calculating minipage widths
% Correct order of tables after \paragraph or \subparagraph
\usepackage{etoolbox}
\makeatletter
\patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
\makeatother
% Allow footnotes in longtable head/foot
\IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
\makesavenoteenv{longtable}
\usepackage{graphicx}
\makeatletter
\def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
\def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
\makeatother
% Scale images if necessary, so that they will not overflow the page
% margins by default, and it is still possible to overwrite the defaults
% using explicit options in \includegraphics[width, height, ...]{}
\setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}
% Set default figure placement to htbp
\makeatletter
\def\fps@figure{htbp}
\makeatother
% definitions for citeproc citations
\NewDocumentCommand\citeproctext{}{}
\NewDocumentCommand\citeproc{mm}{%
\begingroup\def\citeproctext{#2}\cite{#1}\endgroup}
\makeatletter
% allow citations to break across lines
\let\@cite@ofmt\@firstofone
% avoid brackets around text for \cite:
\def\@biblabel#1{}
\def\@cite#1#2{{#1\if@tempswa , #2\fi}}
\makeatother
\newlength{\cslhangindent}
\setlength{\cslhangindent}{1.5em}
\newlength{\csllabelwidth}
\setlength{\csllabelwidth}{3em}
\newenvironment{CSLReferences}[2] % #1 hanging-indent, #2 entry-spacing
{\begin{list}{}{%
\setlength{\itemindent}{0pt}
\setlength{\leftmargin}{0pt}
\setlength{\parsep}{0pt}
% turn on hanging indent if param 1 is 1
\ifodd #1
\setlength{\leftmargin}{\cslhangindent}
\setlength{\itemindent}{-1\cslhangindent}
\fi
% set entry spacing
\setlength{\itemsep}{#2\baselineskip}}}
{\end{list}}
\usepackage{calc}
\newcommand{\CSLBlock}[1]{\hfill\break\parbox[t]{\linewidth}{\strut\ignorespaces#1\strut}}
\newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{\strut#1\strut}}
\newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{\strut#1\strut}}
\newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1}
\usepackage{physics}
\usepackage[version=3]{mhchem}
\usepackage{orcidlink}
\usepackage{float}
\floatplacement{table}{htb}
\makeatletter
\@ifpackageloaded{caption}{}{\usepackage{caption}}
\AtBeginDocument{%
\ifdefined\contentsname
\renewcommand*\contentsname{Table of contents}
\else
\newcommand\contentsname{Table of contents}
\fi
\ifdefined\listfigurename
\renewcommand*\listfigurename{List of Figures}
\else
\newcommand\listfigurename{List of Figures}
\fi
\ifdefined\listtablename
\renewcommand*\listtablename{List of Tables}
\else
\newcommand\listtablename{List of Tables}
\fi
\ifdefined\figurename
\renewcommand*\figurename{Fig.}
\else
\newcommand\figurename{Fig.}
\fi
\ifdefined\tablename
\renewcommand*\tablename{Table}
\else
\newcommand\tablename{Table}
\fi
}
\@ifpackageloaded{float}{}{\usepackage{float}}
\floatstyle{ruled}
\@ifundefined{c@chapter}{\newfloat{codelisting}{h}{lop}}{\newfloat{codelisting}{h}{lop}[chapter]}
\floatname{codelisting}{Listing}
\newcommand*\listoflistings{\listof{codelisting}{List of Listings}}
\usepackage{amsthm}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}[section]
\theoremstyle{remark}
\AtBeginDocument{\renewcommand*{\proofname}{Proof}}
\newtheorem*{remark}{Remark}
\newtheorem*{solution}{Solution}
\makeatother
\makeatletter
\makeatother
\makeatletter
\@ifpackageloaded{caption}{}{\usepackage{caption}}
\@ifpackageloaded{subcaption}{}{\usepackage{subcaption}}
\makeatother
\usepackage[skip=2pt,font=footnotesize]{caption}
%\captionsetup{format=myformat}
\makeatletter
%\setlength{\cslhangindent}{0pt plus .5pt}
\providecommand{\bibfont}{\footnotesize}
\let\CSLReferences@rig=\CSLReferences
\renewcommand{\CSLReferences}[2]{
\bibfont\settowidth\csllabelwidth{[999]}
\CSLReferences@rig{#1}{#2}
\vskip 0.3\baselineskip plus 0.1\baselineskip minus 0.1\baselineskip%
}
\makeatother
\ifLuaTeX
\usepackage{selnolig} % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
pdftitle={A Sample Article Using quarto-ieee for IEEE Journal and Transactions},
pdfauthor={David Folio; John Doe},
pdfkeywords={IEEE, IEEEtran, journal, Quarto, Pandoc, template},
colorlinks=true,
linkcolor={blue},
filecolor={Maroon},
citecolor={Blue},
urlcolor={Blue},
pdfcreator={LaTeX via pandoc}}
% *** Do not adjust lengths that control margins, column widths, etc. ***
% *** Do not use packages that alter fonts (such as pslatex). ***
% There should be no need to do such things with IEEEtran.cls V1.6 and later.
% (Unless specifically asked to do so by the journal or conference you plan
% to submit to, of course. )
% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}
%
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
% paper title
% can use linebreaks \\ within to get better formatting as desired
% Do not put math or special symbols in the title.
\title{A Sample Article Using \texttt{quarto-ieee} for IEEE Journal and
Transactions}
\author{
\thanks{The \texttt{quarto-ieee} template is freely available under the
MIT license on github: \url{https://github.com/dfolio/quarto-ieee}.}
David Folio\orcidlink{0000-0001-9430-6091},~\IEEEmembership{Member,
IEEE}
and~John Doe%
\thanks{David Folio is with Laboratoire Prisme, INSA Centre Val de
Loire, Bourges, 18800 France%
 Corresponding author: david.folio@insa-cvl.fr
}
\thanks{Unknown affiliation}
%by-author.affiliations
\thanks{John Doe is with Anonymous University%
}
%by-author.affiliations
\thanks{Template created June 23, 2023; revised December 20, 2023.}
}
\begin{document}
% The paper headers
\markboth{Journal XXX, Month Year}{D. Folio: A Sample Article Using
quarto-ieee}
% use for special paper notices
% make the title area
\maketitle
% As a general rule, do not put math, special symbols or citations
% in the abstract or keywords.
\begin{abstract}
This document describes the most common article elements and how to use
the \texttt{quarto-ieee} class with Pandoc/Quarto-Markdown to produce
files that are suitable for submission to IEEE journals.
\texttt{quarto-ieee} can produce conference, journal, and technical note
(correspondence) papers with a suitable choice of class options. It
intends to generate PDF and HTML outputs that closely mimick what IEEE
would generate.
\end{abstract}
% Note that keywords are not normally used for peerreview papers.
\begin{IEEEkeywords}
IEEE, IEEEtran, journal, Quarto, Pandoc, template
\end{IEEEkeywords}
% For peer review papers, you can put extra information on the cover
% page as needed:
% \ifCLASSOPTIONpeerreview
% \begin{center} \bfseries EDICS Category: 3-BBND \end{center}
% \fi
%
% For peerreview papers, this IEEEtran command inserts a page break and
% creates the second title. It will be ignored for other modes.
% \IEEEpeerreviewmaketitle
\section{Introduction}\label{sec-intro}
\IEEEPARstart{T}{his} file is intended to serve as a ``sample article
file'' for IEEE journal papers produced with (Pandoc/Quarto)-Markdown
using \texttt{IEEEtran.cls} version 1.8b and later for the PDF output.
It is based on \texttt{bare\_jrnl\_new\_sample4.tex} provided by IEEE
Publication Technology, Staff and available from
\url{https://template-selector.ieee.org/}. The most common elements are
covered in the simplified and updated instructions in
\texttt{New\_IEEEtran\_how-to.pdf}. For less common elements you can
refer back to the original \texttt{IEEEtran\_HOWTO.pdf}. It is assumed
that the reader has a basic working knowledge of {\LaTeX}
\citeproc{ref-mittelbach2023latex}{{[}1{]}} and of
(Pandoc/Quarto)-Markdown \citeproc{ref-MacFarlane_Pandoc}{{[}2{]}},
\citeproc{ref-Allaire_Quarto_2022}{{[}3{]}} markup.
\section{The Design, Intent, and Limitations of this
Templates}\label{the-design-intent-and-limitations-of-this-templates}
The \texttt{quarto-ieee} template is intended to \textbf{approximate the
final look and page length of the articles/papers} either in PDF output
or HTML output. \textbf{They are NOT intended to be the final produced
work that is displayed in print or on IEEEXplore\textsuperscript{®}}.
They will help to give the authors an approximation of the number of
pages and layout that will be in the final version.
\subsection{Unsuported feature and
limitations}\label{unsuported-feature-and-limitations}
Although most of the {\LaTeX} and \texttt{IEEEtran.cls} commands and
environment are supported, there are some limitations when trying to
export to a format other than PDF (e.g.~HTML output). For PDF output,
the reader can use the {\LaTeX} command directly. However, this may
break other output formats.\\
It can be can reported the following limitations of the
\texttt{quarto-ieee} template: - Several authors with same affiliation
produce weird output. In such case, it is recommended to use
\texttt{note} and \texttt{tex-author-no-affiliation:\ true}. - For
\texttt{PDF} output - \texttt{quarto-ieee} use a hack to handle the
\texttt{longtable} issue with 2-column {\LaTeX} documents\footnote{{[}``\emph{\href{https://github.com/jgm/pandoc/issues/1023\%3E}{longtable
not compatible with 2-column LaTeX documents}}'',}. But, in some
cases, a page overflow may occur (see also Section~\ref{sec-tables}). -
For \texttt{HTML} output - The default Quarto toc is used, so the table
of contents (toc) display is not the same as on
\href{https://ieeexplore.ieee.org/}{IEEEXplore®}. - Footnote are put at
the end of document, while on
\href{https://ieeexplore.ieee.org/}{IEEEXplore®} there are placed in the
accordion. - Figures are not placed in the accordion. -
\href{https://ieeexplore.ieee.org/}{IEEEXplore®} specifics
(e.g.~citation metrics, etc.) - The \texttt{HTML} output is a Quarto
citeable article \citeproc{ref-quarto-citation}{{[}4{]}}, so a citation
appendix is automatically added to the article end.
\subsection{Contributing}\label{contributing}
If you want to improve the \texttt{quarto-ieee} template or need some
specific features do not hesitate to submit Pull Request\footnote{Go to
the PR page: \url{https://github.com/dfolio/quarto-ieee/pulls}} (it is
considered good practice to open an issue for discussion before working
on a pull request for a new feature).
\section{Some random text}\label{some-random-text}
For some of the remainder of this sample we will use dummy text to fill
out paragraphs rather than use live text that may violate a copyright.
\IEEEpubidadjcol\\
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis cursus
nisl eget tempor porta. Proin dapibus dictum quam a commodo. Mauris
congue scelerisque eros a porta. Proin blandit nulla sapien, et pretium
justo dictum non. Vivamus ultricies, elit eu posuere placerat, sapien
est condimentum nisl, at tincidunt tortor dolor ac ligula. Suspendisse
pulvinar libero quis eros finibus sodales. Vivamus mattis est eget
imperdiet luctus. Morbi eget posuere metus. Nam egestas elit lectus, eu
tincidunt odio viverra sed. Sed sit amet metus rutrum, ultricies elit
in, finibus felis. Integer lobortis dui ante, eget placerat lorem
laoreet eu.
Nullam mi ligula, luctus a orci ut, tincidunt varius augue. Vestibulum
ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
curae; Donec sed sem risus. Nam eleifend ultrices elit, vitae posuere
tellus interdum et. Nam id nisl at elit malesuada malesuada. Suspendisse
viverra ipsum libero, vel pharetra sem maximus sed. Nunc vel est
fringilla, rutrum diam eu, egestas quam. Vivamus lobortis blandit velit,
commodo finibus mauris. Quisque vel lacus ipsum. Pellentesque quis nulla
ipsum.
Aenean in hendrerit quam. Orci varius natoque penatibus et magnis dis
parturient montes, nascetur ridiculus mus. Aliquam tincidunt vehicula
dignissim. In quis aliquet lectus, ac vestibulum elit. Quisque a magna
viverra quam viverra faucibus. Nulla ornare tortor at mollis viverra.
Curabitur vel porta dui. Etiam ipsum elit, egestas eget lacus nec,
laoreet iaculis lacus. In iaculis risus ac tincidunt viverra. Maecenas
tempor iaculis odio quis aliquet.\\
Maecenas ac posuere turpis. Fusce est dui, dapibus sed odio eget,
eleifend facilisis felis. Nam gravida varius enim, ornare tincidunt urna
ullamcorper ut. Donec sit amet eros ac lacus placerat rutrum ut non
dolor. Nulla tincidunt nunc massa, sed euismod dui feugiat vitae.
Integer tempus risus rutrum tellus interdum, eu aliquet sapien rutrum.
Nunc feugiat varius lacus sed laoreet. Integer euismod tellus nisi, id
scelerisque sem sagittis eu. Suspendisse at orci vel neque varius tempor
nec vitae odio. Integer elementum elementum fermentum. Morbi in turpis
cursus, lacinia arcu et, semper orci.
\section{Front matter}\label{front-matter}
Most Quarto's authors and affiliations schemes
\citeproc{ref-quarto-funding}{{[}5{]}} are supported in the YAML front
matter to render authors as requested by IEEE journals in PDF and HTML
outputs. When provided to an author, the \texttt{note} entry is rendered
as a \texttt{\textbackslash{}thanks\{\}} in \texttt{PDF} output (ignored
in \texttt{HTML} output). Additionally, the reader may add to an author
a \texttt{photo:\ path/to/photograph.png} with a \texttt{bio} metadata
entries to generate a \texttt{IEEEbiography}, while a sole \texttt{bio}
generates a \texttt{IEEEbiographynophoto} (these features is used both
in \texttt{PDF} and \texttt{HTML} outputs).\\
The \texttt{funding} entry is also used in both PDF and HTML outputs
\citeproc{ref-quarto-funding}{{[}5{]}}. At version v1.1.1, only the
\texttt{funding.statement} is used. Similarly, \texttt{citation} entry
is supported to make the HTML output a ``\emph{citeable
article}''~\citeproc{ref-quarto-citation}{{[}4{]}}.
\section{Some Common Elements}\label{some-common-elements}
\subsection{Sections and Subsections}\label{sections-and-subsections}
As stated in the \texttt{IEEEtran} template enumeration of section
headings is desirable, but not required. When numbered, it should be
consistent throughout the article, that is, all headings and all levels
of section headings in the article should be enumerated. Primary
headings are designated with Roman numerals, secondary with capital
letters, tertiary with Arabic numbers; and quaternary with lowercase
letters. References and Acknowledgment headings are unlike all other
section headings in text. They are never enumerated. They are simply
primary headings without labels, regardless of whether the other
headings in the article are enumerated.
The following Section~\ref{sec-Markdown} shows some basic usage and
capabilities of \texttt{quarto-ieee}.
\subsection{Markdown basics}\label{sec-Markdown}
The reader can easily find many documentations on how to write using the
(Pandoc/Quarto) Markdown syntax. The \texttt{quarto-ieee} template
relies mainly on the Markdown markup supported by Quarto
\citeproc{ref-quarto-markdown}{{[}6{]}}, which is build based on Pandoc
\citeproc{ref-MacFarlane_Pandoc}{{[}2{]}},
\citeproc{ref-Allaire_Quarto_2022}{{[}3{]}}. Below are some basic
examples of usage of the Markdown markup (to save space, it is better to
consult the original Quarto document \texttt{template.qmd}).
\subsubsection{Display equations}\label{display-equations}
To write equations use \texttt{\$} delimiters for inline formula or
\texttt{\$\$} for block one. To number the equations, it is recommended
to use classic equation environments provided by {\LaTeX} and to use
\texttt{\textbackslash{}eqref\{\}} (or \texttt{\textbackslash{}ref\{\}})
for cross-referencing. For example: \begin{equation}\label{eq:1}
{{\chi}_a}=\text{diag}\left(\frac{{\chi}}{1+n_a{\chi}},\frac{{\chi}}{1+n_b{\chi}},\frac{{\chi}}{1+n_b{\chi}}\right),
\end{equation} \begin{align}
a & = b + c \label{eq:2} \\
c & = d + e \label{eq:3}
\end{align}
\begin{equation}\label{eq:4}
\begin{cases}
1&=n_a+2n_b \\
n_a&=\dfrac{1-{\varepsilon}^2}{2{\varepsilon}^3}\left(\log\left(\dfrac{1+{\varepsilon}}{1-{\varepsilon}}\right)-2{\varepsilon}\right)
\end{cases}
\end{equation} The above equation is cross-referenced as \eqref{eq:1},
\eqref{eq:2}, \eqref{eq:3} and \eqref{eq:4}.
For now, avoid using the Quarto cross-references that use of
\texttt{\$\$\ \$\$} with \texttt{\#eq-} label. It works properly only
for PDF output, but there are some issues with HTML\footnote{See the
issue here \url{https://github.com/quarto-dev/quarto-cli/issues/2275}}
output.
\begin{remark}
\texttt{quarto-ieee} template also supports the
\href{https://ctan.org/pkg/mhchem}{\texttt{mhchem}} (for chemical
equation) and \href{https://ctan.org/pkg/physics}{\texttt{physics}} (for
flexible macros for typesetting equations) {\LaTeX} packages and
\href{https://docs.mathjax.org/en/latest/input/tex/extensions/index.html}{Mathjax
extensions}.
\end{remark}
\subsubsection{Theorems, Proofs and
Remarks}\label{theorems-proofs-and-remarks}
To include a reference-able theorem, create a div with a \texttt{\#thm-}
label. A theorem name is specified via the first heading in the block.
For example:
\begin{theorem}[Line]\protect\hypertarget{thm-line}{}\label{thm-line}
The equation of any straight line, called a linear equation, can be
written as:
\[
y = mx + b
\]
\end{theorem}
The theorem is cross-referenced as Theorem~\ref{thm-line}.
There are a number of theorem variations supported by
\href{https://quarto.org/docs/authoring/cross-references.html\#theorems-and-proofs}{Quarto},
each with their own label prefix:
\begin{itemize}
\tightlist
\item
\texttt{\#thm-} for Theorem;
\item
\texttt{\#lem-} for Lemma;
\item
\texttt{\#cor-} for Corollary
\item
\texttt{\#prp-} for Proposition;
\item
\texttt{\#cnj-} for Conjecture;
\item
\texttt{\#def-} for Definition;
\item
\texttt{\#exm-} for Example;
\item
\texttt{\#exr-} for Exercise.
\end{itemize}
The \texttt{proof}, \texttt{remark} and \texttt{solution} environments
generally receive similar typesetting as theorems. However they are not
numbered (and therefore cannot be cross-referenced). To create these
environments just use them as the class name of a div such as:
\begin{solution}[The solution]
An example of solution environment.
\end{solution}
\subsubsection{Figures}\label{figures}
An image with nonempty alt text will be rendered as a figure with a
caption with Pandoc and Quarto. Quarto includes a different features to
simplify the use of figures and subfigures. Here, it is recommended to
use div block with \texttt{\#fig-} label to embed your Figures.
\begin{figure}
\centering{
\includegraphics[width=0.3\textwidth,height=\textheight]{fig1.png}
}
\caption{\label{fig-1}An example of figure.}
\end{figure}%
\begin{figure}
\begin{minipage}[t]{0.50\linewidth}
\centering{
\captionsetup{labelsep=none}\includegraphics{fig1.png}
}
\subcaption{\label{fig-2a}}
\end{minipage}%
%
\begin{minipage}[t]{0.50\linewidth}
\centering{
\captionsetup{labelsep=none}\includegraphics{fig1.png}
}
\subcaption{\label{fig-2b}}
\end{minipage}%
\caption{\label{fig-2}An example with sub-figure.}
\end{figure}%
The figures is cross-referenced as Fig.~\ref{fig-2} and even the
sub-figures as Fig.~\ref{fig-2b}.
\subsubsection{Tables}\label{sec-tables}
Similarly, many kind of tables may be used with Pandoc and Quarto. The
latter also includes different features to simplify the table output. To
make tables cross-referenceable use a label with a \texttt{\#tbl-}
prefix.\\
However, it is recommended to avoid using the commonly used single
Markdown table known as a `pipe table'. In fact, Pandoc Markdown uses
the {\LaTeX} \texttt{longtable} package, which does not support the
two-column mode, which is required for most \texttt{IEEEtran} journals.
\texttt{quarto-ieee} uses a hack to temporarily switch to one-column
mode. However, this hack may break the page layout. To overcome this
issue, a basic way is to use code cells (as for Table~\ref{tbl-other}).
Quarto is a multi-language and it uses \texttt{Knitr} to execute
\texttt{R} code and can execute Python code blocks within Markdown.
\begin{table}
\caption{\label{tbl-panel}Main Caption}
\begin{minipage}[t]{0.50\linewidth}
\subcaption{\label{tbl-first}First Table}
\centering{
\begin{tabular}[t]{lll}
\toprule
Col1 & Col2 & Col3\\
\midrule
A & B & C\\
E & F & G\\
A & G & G\\
\bottomrule
\end{tabular}
}
\end{minipage}%
%
\begin{minipage}[t]{0.50\linewidth}
\subcaption{\label{tbl-second}Second Table}
\centering{
\begin{tabular}[t]{lll}
\toprule
Col1 & Col2 & Col3\\
\midrule
A & B & C\\
E & F & G\\
A & G & G\\
\bottomrule
\end{tabular}
}
\end{minipage}%
\end{table}%
The Tables are cross-referenced as Table~\ref{tbl-panel} for details,
especially Table~\ref{tbl-second}. There is also Table~\ref{tbl-other}.
\begin{table}
\caption{\label{tbl-other}A table}
\centering{
\begin{tabular}{lll}
\toprule
Col1 & Col2 & Col3\\
\midrule
A & D & G\\
B & E & H\\
C & F & I\\
\bottomrule
\end{tabular}
}
\end{table}%
\subsection{Bibliography}\label{bibliography}
IEEE journal should normally use IEEEtran\footnote{IEEEtran BibTeX style
support page is:
\url{http://www.michaelshell.org/tex/ieeetran/bibtex/}}
\textsc{Bib}{\TeX} style. Nevertheless, Pandoc and Quarto do support
\textsc{Bib}{\TeX} with natbib or biblatex. However, neither is
officially recommended for normal IEEE use. For this reason,
\texttt{quarto-ieee} uses \texttt{citeproc} with the \texttt{ieee} CSL
style sheet.
\section{Conclusions}\label{conclusions}
The conclusion goes here.
\section*{Acknowledgment}\label{acknowledgment}
\addcontentsline{toc}{section}{Acknowledgment}
This should be a simple paragraph before the References to thank those
individuals and institutions who have supported your work on this
article.
\appendix[An Appendix]{}
Use \texttt{{[}{]}\{.appendix\ options="An\ Appendix"\}} markup if you
have a single appendix. \texttt{IEEEtran} state that to do not use
\texttt{\textbackslash{}section\{\}} anymore after
\texttt{\textbackslash{}appendix}.
\section*{References}\label{references}
\addcontentsline{toc}{section}{References}
\phantomsection\label{refs}
\begin{CSLReferences}{0}{0}
\bibitem[\citeproctext]{ref-mittelbach2023latex}
\CSLLeftMargin{{[}1{]} }%
\CSLRightInline{F. Mittelbach and U. Fischer, \emph{The {LaTeX}
companion}, 3rd ed. {Addison Wesley Professional}, 2023. }
\bibitem[\citeproctext]{ref-MacFarlane_Pandoc}
\CSLLeftMargin{{[}2{]} }%
\CSLRightInline{J. MacFarlane, A. Krewinkel, and J. Rosenthal,
{``{Pandoc}.''} {[}Online{]}. Available:
\url{https://github.com/jgm/pandoc}}
\bibitem[\citeproctext]{ref-Allaire_Quarto_2022}
\CSLLeftMargin{{[}3{]} }%
\CSLRightInline{J. J. Allaire, C. Teague, C. Scheidegger, Y. Xie, and C.
Dervieux, {``{Quarto}.''} Jan-2022 {[}Online{]}. Available:
\url{https://github.com/quarto-dev/quarto-cli}}
\bibitem[\citeproctext]{ref-quarto-citation}
\CSLLeftMargin{{[}4{]} }%
\CSLRightInline{{``Quarto - {Creating Citeable Articles}.''}
{[}Online{]}. Available:
\url{https://quarto.org/docs/authoring/create-citeable-articles.html}.
{[}Accessed: 25-Oct-2023{]}}
\bibitem[\citeproctext]{ref-quarto-funding}
\CSLLeftMargin{{[}5{]} }%
\CSLRightInline{{``Quarto - {Front Matter}.''} {[}Online{]}. Available:
\url{https://quarto.org/docs/authoring/front-matter.html\#funding}.
{[}Accessed: 25-Oct-2023{]}}
\bibitem[\citeproctext]{ref-quarto-markdown}
\CSLLeftMargin{{[}6{]} }%
\CSLRightInline{{``Quarto - {Markdown Basics}.''} {[}Online{]}.
Available: \url{https://quarto.org/docs/authoring/markdown-basics}.
{[}Accessed: 25-Oct-2023{]}}
\end{CSLReferences}
% Can use something like this to put references on a page
% by themselves when using endfloat and the captionsoff option.
\ifCLASSOPTIONcaptionsoff
\newpage
\fi
% trigger a \newpage just before the given reference
% number - used to balance the columns on the last page
% adjust value as needed - may need to be readjusted if
% the document is modified later
%\IEEEtriggeratref{8}
% The "triggered" command can be changed if desired:
%\IEEEtriggercmd{\enlargethispage{-5in}}
% Uncomment when use biblatex with style=ieee
%\renewcommand{\bibfont}{\footnotesize} % for IEEE bibfont size
\pagebreak[3]
\begin{IEEEbiography}[\includegraphics{david-folio.png}]{David Folio}
Use \texttt{IEEEbiography} with figure as option and the author name as
the argument followed by the biography text.
\end{IEEEbiography}
\begin{IEEEbiographynophoto}{John Doe}
Use \texttt{IEEEbiographynophoto} and the author name as the argument
followed by the biography text.
\end{IEEEbiographynophoto}
% that's all folks
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,203 @@
/* quarto syntax highlight colors */
:root {
--quarto-hl-ot-color: #003B4F;
--quarto-hl-at-color: #657422;
--quarto-hl-ss-color: #20794D;
--quarto-hl-an-color: #5E5E5E;
--quarto-hl-fu-color: #4758AB;
--quarto-hl-st-color: #20794D;
--quarto-hl-cf-color: #003B4F;
--quarto-hl-op-color: #5E5E5E;
--quarto-hl-er-color: #AD0000;
--quarto-hl-bn-color: #AD0000;
--quarto-hl-al-color: #AD0000;
--quarto-hl-va-color: #111111;
--quarto-hl-bu-color: inherit;
--quarto-hl-ex-color: inherit;
--quarto-hl-pp-color: #AD0000;
--quarto-hl-in-color: #5E5E5E;
--quarto-hl-vs-color: #20794D;
--quarto-hl-wa-color: #5E5E5E;
--quarto-hl-do-color: #5E5E5E;
--quarto-hl-im-color: #00769E;
--quarto-hl-ch-color: #20794D;
--quarto-hl-dt-color: #AD0000;
--quarto-hl-fl-color: #AD0000;
--quarto-hl-co-color: #5E5E5E;
--quarto-hl-cv-color: #5E5E5E;
--quarto-hl-cn-color: #8f5902;
--quarto-hl-sc-color: #5E5E5E;
--quarto-hl-dv-color: #AD0000;
--quarto-hl-kw-color: #003B4F;
}
/* other quarto variables */
:root {
--quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
pre > code.sourceCode > span {
color: #003B4F;
}
code span {
color: #003B4F;
}
code.sourceCode > span {
color: #003B4F;
}
div.sourceCode,
div.sourceCode pre.sourceCode {
color: #003B4F;
}
code span.ot {
color: #003B4F;
font-style: inherit;
}
code span.at {
color: #657422;
font-style: inherit;
}
code span.ss {
color: #20794D;
font-style: inherit;
}
code span.an {
color: #5E5E5E;
font-style: inherit;
}
code span.fu {
color: #4758AB;
font-style: inherit;
}
code span.st {
color: #20794D;
font-style: inherit;
}
code span.cf {
color: #003B4F;
font-style: inherit;
}
code span.op {
color: #5E5E5E;
font-style: inherit;
}
code span.er {
color: #AD0000;
font-style: inherit;
}
code span.bn {
color: #AD0000;
font-style: inherit;
}
code span.al {
color: #AD0000;
font-style: inherit;
}
code span.va {
color: #111111;
font-style: inherit;
}
code span.bu {
font-style: inherit;
}
code span.ex {
font-style: inherit;
}
code span.pp {
color: #AD0000;
font-style: inherit;
}
code span.in {
color: #5E5E5E;
font-style: inherit;
}
code span.vs {
color: #20794D;
font-style: inherit;
}
code span.wa {
color: #5E5E5E;
font-style: italic;
}
code span.do {
color: #5E5E5E;
font-style: italic;
}
code span.im {
color: #00769E;
font-style: inherit;
}
code span.ch {
color: #20794D;
font-style: inherit;
}
code span.dt {
color: #AD0000;
font-style: inherit;
}
code span.fl {
color: #AD0000;
font-style: inherit;
}
code span.co {
color: #5E5E5E;
font-style: inherit;
}
code span.cv {
color: #5E5E5E;
font-style: italic;
}
code span.cn {
color: #8f5902;
font-style: inherit;
}
code span.sc {
color: #5E5E5E;
font-style: inherit;
}
code span.dv {
color: #AD0000;
font-style: inherit;
}
code span.kw {
color: #003B4F;
font-style: inherit;
}
.prevent-inlining {
content: "</";
}
/*# sourceMappingURL=debc5d5d77c3f9108843748ff7464032.css.map */

View File

@@ -0,0 +1,899 @@
const sectionChanged = new CustomEvent("quarto-sectionChanged", {
detail: {},
bubbles: true,
cancelable: false,
composed: false,
});
const layoutMarginEls = () => {
// Find any conflicting margin elements and add margins to the
// top to prevent overlap
const marginChildren = window.document.querySelectorAll(
".column-margin.column-container > * "
);
let lastBottom = 0;
for (const marginChild of marginChildren) {
if (marginChild.offsetParent !== null) {
// clear the top margin so we recompute it
marginChild.style.marginTop = null;
const top = marginChild.getBoundingClientRect().top + window.scrollY;
if (top < lastBottom) {
const margin = lastBottom - top;
marginChild.style.marginTop = `${margin}px`;
}
const styles = window.getComputedStyle(marginChild);
const marginTop = parseFloat(styles["marginTop"]);
lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
}
}
};
window.document.addEventListener("DOMContentLoaded", function (_event) {
// Recompute the position of margin elements anytime the body size changes
if (window.ResizeObserver) {
const resizeObserver = new window.ResizeObserver(
throttle(() => {
layoutMarginEls();
console.log(window.document.body.getBoundingClientRect());
if (
window.document.body.getBoundingClientRect().width < 990 &&
isReaderMode()
) {
quartoToggleReader();
}
}, 50)
);
resizeObserver.observe(window.document.body);
}
const tocEl = window.document.querySelector('nav.toc-active[role="doc-toc"]');
const sidebarEl = window.document.getElementById("quarto-sidebar");
const leftTocEl = window.document.getElementById("quarto-sidebar-toc-left");
const marginSidebarEl = window.document.getElementById(
"quarto-margin-sidebar"
);
// function to determine whether the element has a previous sibling that is active
const prevSiblingIsActiveLink = (el) => {
const sibling = el.previousElementSibling;
if (sibling && sibling.tagName === "A") {
return sibling.classList.contains("active");
} else {
return false;
}
};
// fire slideEnter for bootstrap tab activations (for htmlwidget resize behavior)
function fireSlideEnter(e) {
const event = window.document.createEvent("Event");
event.initEvent("slideenter", true, true);
window.document.dispatchEvent(event);
}
const tabs = window.document.querySelectorAll('a[data-bs-toggle="tab"]');
tabs.forEach((tab) => {
tab.addEventListener("shown.bs.tab", fireSlideEnter);
});
// fire slideEnter for tabby tab activations (for htmlwidget resize behavior)
document.addEventListener("tabby", fireSlideEnter, false);
// Track scrolling and mark TOC links as active
// get table of contents and sidebar (bail if we don't have at least one)
const tocLinks = tocEl
? [...tocEl.querySelectorAll("a[data-scroll-target]")]
: [];
const makeActive = (link) => tocLinks[link].classList.add("active");
const removeActive = (link) => tocLinks[link].classList.remove("active");
const removeAllActive = () =>
[...Array(tocLinks.length).keys()].forEach((link) => removeActive(link));
// activate the anchor for a section associated with this TOC entry
tocLinks.forEach((link) => {
link.addEventListener("click", () => {
if (link.href.indexOf("#") !== -1) {
const anchor = link.href.split("#")[1];
const heading = window.document.querySelector(
`[data-anchor-id=${anchor}]`
);
if (heading) {
// Add the class
heading.classList.add("reveal-anchorjs-link");
// function to show the anchor
const handleMouseout = () => {
heading.classList.remove("reveal-anchorjs-link");
heading.removeEventListener("mouseout", handleMouseout);
};
// add a function to clear the anchor when the user mouses out of it
heading.addEventListener("mouseout", handleMouseout);
}
}
});
});
const sections = tocLinks.map((link) => {
const target = link.getAttribute("data-scroll-target");
if (target.startsWith("#")) {
return window.document.getElementById(decodeURI(`${target.slice(1)}`));
} else {
return window.document.querySelector(decodeURI(`${target}`));
}
});
const sectionMargin = 200;
let currentActive = 0;
// track whether we've initialized state the first time
let init = false;
const updateActiveLink = () => {
// The index from bottom to top (e.g. reversed list)
let sectionIndex = -1;
if (
window.innerHeight + window.pageYOffset >=
window.document.body.offsetHeight
) {
sectionIndex = 0;
} else {
sectionIndex = [...sections].reverse().findIndex((section) => {
if (section) {
return window.pageYOffset >= section.offsetTop - sectionMargin;
} else {
return false;
}
});
}
if (sectionIndex > -1) {
const current = sections.length - sectionIndex - 1;
if (current !== currentActive) {
removeAllActive();
currentActive = current;
makeActive(current);
if (init) {
window.dispatchEvent(sectionChanged);
}
init = true;
}
}
};
const inHiddenRegion = (top, bottom, hiddenRegions) => {
for (const region of hiddenRegions) {
if (top <= region.bottom && bottom >= region.top) {
return true;
}
}
return false;
};
const categorySelector = "header.quarto-title-block .quarto-category";
const activateCategories = (href) => {
// Find any categories
// Surround them with a link pointing back to:
// #category=Authoring
try {
const categoryEls = window.document.querySelectorAll(categorySelector);
for (const categoryEl of categoryEls) {
const categoryText = categoryEl.textContent;
if (categoryText) {
const link = `${href}#category=${encodeURIComponent(categoryText)}`;
const linkEl = window.document.createElement("a");
linkEl.setAttribute("href", link);
for (const child of categoryEl.childNodes) {
linkEl.append(child);
}
categoryEl.appendChild(linkEl);
}
}
} catch {
// Ignore errors
}
};
function hasTitleCategories() {
return window.document.querySelector(categorySelector) !== null;
}
function offsetRelativeUrl(url) {
const offset = getMeta("quarto:offset");
return offset ? offset + url : url;
}
function offsetAbsoluteUrl(url) {
const offset = getMeta("quarto:offset");
const baseUrl = new URL(offset, window.location);
const projRelativeUrl = url.replace(baseUrl, "");
if (projRelativeUrl.startsWith("/")) {
return projRelativeUrl;
} else {
return "/" + projRelativeUrl;
}
}
// read a meta tag value
function getMeta(metaName) {
const metas = window.document.getElementsByTagName("meta");
for (let i = 0; i < metas.length; i++) {
if (metas[i].getAttribute("name") === metaName) {
return metas[i].getAttribute("content");
}
}
return "";
}
async function findAndActivateCategories() {
const currentPagePath = offsetAbsoluteUrl(window.location.href);
const response = await fetch(offsetRelativeUrl("listings.json"));
if (response.status == 200) {
return response.json().then(function (listingPaths) {
const listingHrefs = [];
for (const listingPath of listingPaths) {
const pathWithoutLeadingSlash = listingPath.listing.substring(1);
for (const item of listingPath.items) {
if (
item === currentPagePath ||
item === currentPagePath + "index.html"
) {
// Resolve this path against the offset to be sure
// we already are using the correct path to the listing
// (this adjusts the listing urls to be rooted against
// whatever root the page is actually running against)
const relative = offsetRelativeUrl(pathWithoutLeadingSlash);
const baseUrl = window.location;
const resolvedPath = new URL(relative, baseUrl);
listingHrefs.push(resolvedPath.pathname);
break;
}
}
}
// Look up the tree for a nearby linting and use that if we find one
const nearestListing = findNearestParentListing(
offsetAbsoluteUrl(window.location.pathname),
listingHrefs
);
if (nearestListing) {
activateCategories(nearestListing);
} else {
// See if the referrer is a listing page for this item
const referredRelativePath = offsetAbsoluteUrl(document.referrer);
const referrerListing = listingHrefs.find((listingHref) => {
const isListingReferrer =
listingHref === referredRelativePath ||
listingHref === referredRelativePath + "index.html";
return isListingReferrer;
});
if (referrerListing) {
// Try to use the referrer if possible
activateCategories(referrerListing);
} else if (listingHrefs.length > 0) {
// Otherwise, just fall back to the first listing
activateCategories(listingHrefs[0]);
}
}
});
}
}
if (hasTitleCategories()) {
findAndActivateCategories();
}
const findNearestParentListing = (href, listingHrefs) => {
if (!href || !listingHrefs) {
return undefined;
}
// Look up the tree for a nearby linting and use that if we find one
const relativeParts = href.substring(1).split("/");
while (relativeParts.length > 0) {
const path = relativeParts.join("/");
for (const listingHref of listingHrefs) {
if (listingHref.startsWith(path)) {
return listingHref;
}
}
relativeParts.pop();
}
return undefined;
};
const manageSidebarVisiblity = (el, placeholderDescriptor) => {
let isVisible = true;
let elRect;
return (hiddenRegions) => {
if (el === null) {
return;
}
// Find the last element of the TOC
const lastChildEl = el.lastElementChild;
if (lastChildEl) {
// Converts the sidebar to a menu
const convertToMenu = () => {
for (const child of el.children) {
child.style.opacity = 0;
child.style.overflow = "hidden";
}
nexttick(() => {
const toggleContainer = window.document.createElement("div");
toggleContainer.style.width = "100%";
toggleContainer.classList.add("zindex-over-content");
toggleContainer.classList.add("quarto-sidebar-toggle");
toggleContainer.classList.add("headroom-target"); // Marks this to be managed by headeroom
toggleContainer.id = placeholderDescriptor.id;
toggleContainer.style.position = "fixed";
const toggleIcon = window.document.createElement("i");
toggleIcon.classList.add("quarto-sidebar-toggle-icon");
toggleIcon.classList.add("bi");
toggleIcon.classList.add("bi-caret-down-fill");
const toggleTitle = window.document.createElement("div");
const titleEl = window.document.body.querySelector(
placeholderDescriptor.titleSelector
);
if (titleEl) {
toggleTitle.append(
titleEl.textContent || titleEl.innerText,
toggleIcon
);
}
toggleTitle.classList.add("zindex-over-content");
toggleTitle.classList.add("quarto-sidebar-toggle-title");
toggleContainer.append(toggleTitle);
const toggleContents = window.document.createElement("div");
toggleContents.classList = el.classList;
toggleContents.classList.add("zindex-over-content");
toggleContents.classList.add("quarto-sidebar-toggle-contents");
for (const child of el.children) {
if (child.id === "toc-title") {
continue;
}
const clone = child.cloneNode(true);
clone.style.opacity = 1;
clone.style.display = null;
toggleContents.append(clone);
}
toggleContents.style.height = "0px";
const positionToggle = () => {
// position the element (top left of parent, same width as parent)
if (!elRect) {
elRect = el.getBoundingClientRect();
}
toggleContainer.style.left = `${elRect.left}px`;
toggleContainer.style.top = `${elRect.top}px`;
toggleContainer.style.width = `${elRect.width}px`;
};
positionToggle();
toggleContainer.append(toggleContents);
el.parentElement.prepend(toggleContainer);
// Process clicks
let tocShowing = false;
// Allow the caller to control whether this is dismissed
// when it is clicked (e.g. sidebar navigation supports
// opening and closing the nav tree, so don't dismiss on click)
const clickEl = placeholderDescriptor.dismissOnClick
? toggleContainer
: toggleTitle;
const closeToggle = () => {
if (tocShowing) {
toggleContainer.classList.remove("expanded");
toggleContents.style.height = "0px";
tocShowing = false;
}
};
// Get rid of any expanded toggle if the user scrolls
window.document.addEventListener(
"scroll",
throttle(() => {
closeToggle();
}, 50)
);
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
positionToggle();
}, 50)
);
window.addEventListener("quarto-hrChanged", () => {
elRect = undefined;
});
// Process the click
clickEl.onclick = () => {
if (!tocShowing) {
toggleContainer.classList.add("expanded");
toggleContents.style.height = null;
tocShowing = true;
} else {
closeToggle();
}
};
});
};
// Converts a sidebar from a menu back to a sidebar
const convertToSidebar = () => {
for (const child of el.children) {
child.style.opacity = 1;
child.style.overflow = null;
}
const placeholderEl = window.document.getElementById(
placeholderDescriptor.id
);
if (placeholderEl) {
placeholderEl.remove();
}
el.classList.remove("rollup");
};
if (isReaderMode()) {
convertToMenu();
isVisible = false;
} else {
// Find the top and bottom o the element that is being managed
const elTop = el.offsetTop;
const elBottom =
elTop + lastChildEl.offsetTop + lastChildEl.offsetHeight;
if (!isVisible) {
// If the element is current not visible reveal if there are
// no conflicts with overlay regions
if (!inHiddenRegion(elTop, elBottom, hiddenRegions)) {
convertToSidebar();
isVisible = true;
}
} else {
// If the element is visible, hide it if it conflicts with overlay regions
// and insert a placeholder toggle (or if we're in reader mode)
if (inHiddenRegion(elTop, elBottom, hiddenRegions)) {
convertToMenu();
isVisible = false;
}
}
}
}
};
};
const tabEls = document.querySelectorAll('a[data-bs-toggle="tab"]');
for (const tabEl of tabEls) {
const id = tabEl.getAttribute("data-bs-target");
if (id) {
const columnEl = document.querySelector(
`${id} .column-margin, .tabset-margin-content`
);
if (columnEl)
tabEl.addEventListener("shown.bs.tab", function (event) {
const el = event.srcElement;
if (el) {
const visibleCls = `${el.id}-margin-content`;
// walk up until we find a parent tabset
let panelTabsetEl = el.parentElement;
while (panelTabsetEl) {
if (panelTabsetEl.classList.contains("panel-tabset")) {
break;
}
panelTabsetEl = panelTabsetEl.parentElement;
}
if (panelTabsetEl) {
const prevSib = panelTabsetEl.previousElementSibling;
if (
prevSib &&
prevSib.classList.contains("tabset-margin-container")
) {
const childNodes = prevSib.querySelectorAll(
".tabset-margin-content"
);
for (const childEl of childNodes) {
if (childEl.classList.contains(visibleCls)) {
childEl.classList.remove("collapse");
} else {
childEl.classList.add("collapse");
}
}
}
}
}
layoutMarginEls();
});
}
}
// Manage the visibility of the toc and the sidebar
const marginScrollVisibility = manageSidebarVisiblity(marginSidebarEl, {
id: "quarto-toc-toggle",
titleSelector: "#toc-title",
dismissOnClick: true,
});
const sidebarScrollVisiblity = manageSidebarVisiblity(sidebarEl, {
id: "quarto-sidebarnav-toggle",
titleSelector: ".title",
dismissOnClick: false,
});
let tocLeftScrollVisibility;
if (leftTocEl) {
tocLeftScrollVisibility = manageSidebarVisiblity(leftTocEl, {
id: "quarto-lefttoc-toggle",
titleSelector: "#toc-title",
dismissOnClick: true,
});
}
// Find the first element that uses formatting in special columns
const conflictingEls = window.document.body.querySelectorAll(
'[class^="column-"], [class*=" column-"], aside, [class*="margin-caption"], [class*=" margin-caption"], [class*="margin-ref"], [class*=" margin-ref"]'
);
// Filter all the possibly conflicting elements into ones
// the do conflict on the left or ride side
const arrConflictingEls = Array.from(conflictingEls);
const leftSideConflictEls = arrConflictingEls.filter((el) => {
if (el.tagName === "ASIDE") {
return false;
}
return Array.from(el.classList).find((className) => {
return (
className !== "column-body" &&
className.startsWith("column-") &&
!className.endsWith("right") &&
!className.endsWith("container") &&
className !== "column-margin"
);
});
});
const rightSideConflictEls = arrConflictingEls.filter((el) => {
if (el.tagName === "ASIDE") {
return true;
}
const hasMarginCaption = Array.from(el.classList).find((className) => {
return className == "margin-caption";
});
if (hasMarginCaption) {
return true;
}
return Array.from(el.classList).find((className) => {
return (
className !== "column-body" &&
!className.endsWith("container") &&
className.startsWith("column-") &&
!className.endsWith("left")
);
});
});
const kOverlapPaddingSize = 10;
function toRegions(els) {
return els.map((el) => {
const boundRect = el.getBoundingClientRect();
const top =
boundRect.top +
document.documentElement.scrollTop -
kOverlapPaddingSize;
return {
top,
bottom: top + el.scrollHeight + 2 * kOverlapPaddingSize,
};
});
}
let hasObserved = false;
const visibleItemObserver = (els) => {
let visibleElements = [...els];
const intersectionObserver = new IntersectionObserver(
(entries, _observer) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
if (visibleElements.indexOf(entry.target) === -1) {
visibleElements.push(entry.target);
}
} else {
visibleElements = visibleElements.filter((visibleEntry) => {
return visibleEntry !== entry;
});
}
});
if (!hasObserved) {
hideOverlappedSidebars();
}
hasObserved = true;
},
{}
);
els.forEach((el) => {
intersectionObserver.observe(el);
});
return {
getVisibleEntries: () => {
return visibleElements;
},
};
};
const rightElementObserver = visibleItemObserver(rightSideConflictEls);
const leftElementObserver = visibleItemObserver(leftSideConflictEls);
const hideOverlappedSidebars = () => {
marginScrollVisibility(toRegions(rightElementObserver.getVisibleEntries()));
sidebarScrollVisiblity(toRegions(leftElementObserver.getVisibleEntries()));
if (tocLeftScrollVisibility) {
tocLeftScrollVisibility(
toRegions(leftElementObserver.getVisibleEntries())
);
}
};
window.quartoToggleReader = () => {
// Applies a slow class (or removes it)
// to update the transition speed
const slowTransition = (slow) => {
const manageTransition = (id, slow) => {
const el = document.getElementById(id);
if (el) {
if (slow) {
el.classList.add("slow");
} else {
el.classList.remove("slow");
}
}
};
manageTransition("TOC", slow);
manageTransition("quarto-sidebar", slow);
};
const readerMode = !isReaderMode();
setReaderModeValue(readerMode);
// If we're entering reader mode, slow the transition
if (readerMode) {
slowTransition(readerMode);
}
highlightReaderToggle(readerMode);
hideOverlappedSidebars();
// If we're exiting reader mode, restore the non-slow transition
if (!readerMode) {
slowTransition(!readerMode);
}
};
const highlightReaderToggle = (readerMode) => {
const els = document.querySelectorAll(".quarto-reader-toggle");
if (els) {
els.forEach((el) => {
if (readerMode) {
el.classList.add("reader");
} else {
el.classList.remove("reader");
}
});
}
};
const setReaderModeValue = (val) => {
if (window.location.protocol !== "file:") {
window.localStorage.setItem("quarto-reader-mode", val);
} else {
localReaderMode = val;
}
};
const isReaderMode = () => {
if (window.location.protocol !== "file:") {
return window.localStorage.getItem("quarto-reader-mode") === "true";
} else {
return localReaderMode;
}
};
let localReaderMode = null;
const tocOpenDepthStr = tocEl?.getAttribute("data-toc-expanded");
const tocOpenDepth = tocOpenDepthStr ? Number(tocOpenDepthStr) : 1;
// Walk the TOC and collapse/expand nodes
// Nodes are expanded if:
// - they are top level
// - they have children that are 'active' links
// - they are directly below an link that is 'active'
const walk = (el, depth) => {
// Tick depth when we enter a UL
if (el.tagName === "UL") {
depth = depth + 1;
}
// It this is active link
let isActiveNode = false;
if (el.tagName === "A" && el.classList.contains("active")) {
isActiveNode = true;
}
// See if there is an active child to this element
let hasActiveChild = false;
for (child of el.children) {
hasActiveChild = walk(child, depth) || hasActiveChild;
}
// Process the collapse state if this is an UL
if (el.tagName === "UL") {
if (tocOpenDepth === -1 && depth > 1) {
el.classList.add("collapse");
} else if (
depth <= tocOpenDepth ||
hasActiveChild ||
prevSiblingIsActiveLink(el)
) {
el.classList.remove("collapse");
} else {
el.classList.add("collapse");
}
// untick depth when we leave a UL
depth = depth - 1;
}
return hasActiveChild || isActiveNode;
};
// walk the TOC and expand / collapse any items that should be shown
if (tocEl) {
walk(tocEl, 0);
updateActiveLink();
}
// Throttle the scroll event and walk peridiocally
window.document.addEventListener(
"scroll",
throttle(() => {
if (tocEl) {
updateActiveLink();
walk(tocEl, 0);
}
if (!isReaderMode()) {
hideOverlappedSidebars();
}
}, 5)
);
window.addEventListener(
"resize",
throttle(() => {
if (!isReaderMode()) {
hideOverlappedSidebars();
}
}, 10)
);
hideOverlappedSidebars();
highlightReaderToggle(isReaderMode());
});
// grouped tabsets
window.addEventListener("pageshow", (_event) => {
function getTabSettings() {
const data = localStorage.getItem("quarto-persistent-tabsets-data");
if (!data) {
localStorage.setItem("quarto-persistent-tabsets-data", "{}");
return {};
}
if (data) {
return JSON.parse(data);
}
}
function setTabSettings(data) {
localStorage.setItem(
"quarto-persistent-tabsets-data",
JSON.stringify(data)
);
}
function setTabState(groupName, groupValue) {
const data = getTabSettings();
data[groupName] = groupValue;
setTabSettings(data);
}
function toggleTab(tab, active) {
const tabPanelId = tab.getAttribute("aria-controls");
const tabPanel = document.getElementById(tabPanelId);
if (active) {
tab.classList.add("active");
tabPanel.classList.add("active");
} else {
tab.classList.remove("active");
tabPanel.classList.remove("active");
}
}
function toggleAll(selectedGroup, selectorsToSync) {
for (const [thisGroup, tabs] of Object.entries(selectorsToSync)) {
const active = selectedGroup === thisGroup;
for (const tab of tabs) {
toggleTab(tab, active);
}
}
}
function findSelectorsToSyncByLanguage() {
const result = {};
const tabs = Array.from(
document.querySelectorAll(`div[data-group] a[id^='tabset-']`)
);
for (const item of tabs) {
const div = item.parentElement.parentElement.parentElement;
const group = div.getAttribute("data-group");
if (!result[group]) {
result[group] = {};
}
const selectorsToSync = result[group];
const value = item.innerHTML;
if (!selectorsToSync[value]) {
selectorsToSync[value] = [];
}
selectorsToSync[value].push(item);
}
return result;
}
function setupSelectorSync() {
const selectorsToSync = findSelectorsToSyncByLanguage();
Object.entries(selectorsToSync).forEach(([group, tabSetsByValue]) => {
Object.entries(tabSetsByValue).forEach(([value, items]) => {
items.forEach((item) => {
item.addEventListener("click", (_event) => {
setTabState(group, value);
toggleAll(value, selectorsToSync[group]);
});
});
});
});
return selectorsToSync;
}
const selectorsToSync = setupSelectorSync();
for (const [group, selectedName] of Object.entries(getTabSettings())) {
const selectors = selectorsToSync[group];
// it's possible that stale state gives us empty selections, so we explicitly check here.
if (selectors) {
toggleAll(selectedName, selectors);
}
}
});
function throttle(func, wait) {
let waiting = false;
return function () {
if (!waiting) {
func.apply(this, arguments);
waiting = true;
setTimeout(function () {
waiting = false;
}, wait);
}
};
}
function nexttick(func) {
return setTimeout(func, 0);
}

View File

@@ -0,0 +1 @@
.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}

File diff suppressed because one or more lines are too long