port template

This commit is contained in:
Diogo Peralta Cordeiro 2025-06-28 21:32:11 +01:00
parent 687c1305db
commit 6d0df9ad6d
Signed by: diogo
GPG Key ID: 18D2D35001FBFAB0
20 changed files with 14543 additions and 6262 deletions

47
.gitignore vendored
View File

@ -1,25 +1,50 @@
main.pdf
*~
*.aux
main.fls
main.fdb_latexmk
main.out
main.log
*.bbl
*.bcf
*.blg
*.cfg
*.cut
*.dvi
*.glo
*.gls
*.hd
*.idx
*.ilg
*.ind
*.lof
*.log
*.lot
*.out
*.ps
*.rpi
*.run.xml
*.tgz
*.thm
*.toc
*.zip
acmart.cls
main.pdf
main.acn
main.acr
main.alg
main.bbl
main.bcf
main.blg
main.brf
main.fdb_latexmk
main.fls
main.glg
main.glo
main.gls
main.glsdefs
main.ist
main.loa
main.lof
main.log
main.lot
main.out
main.run.xml
main.synctex(busy)
main.toc
svg-inkscape/
main.acr
main.alg
main.glg
main.gls
main.synctex(busy)
main.brf

3224
ACM-Reference-Format.bst Normal file

File diff suppressed because it is too large Load Diff

0
makefile → Makefile Executable file → Normal file
View File

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
acm-jdslogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

8985
acmart.dtx Normal file

File diff suppressed because it is too large Load Diff

31
acmart.ins Normal file
View File

@ -0,0 +1,31 @@
%
% Doctrip file for acmart
% This file is in public domain
% $Id: acmart.ins,v 1.1 2015/11/23 22:42:55 boris Exp $
%
\def\batchfile{acmart.ins}
\input docstrip
\keepsilent
\showprogress
\askforoverwritefalse
\generate{%
\file{acmart.cls}{\from{acmart.dtx}{class}}
\file{acmart-tagged.cls}{\from{acmart.dtx}{class,tagged}}
}
\obeyspaces
\Msg{*****************************************************}%
\Msg{* Congratulations! You successfully generated the *}%
\Msg{* acmart package. *}%
\Msg{* *}%
\Msg{* Please move the file acmart.cls to where LaTeX *}%
\Msg{* files are stored in your system. The manual is *}%
\Msg{* acmart.pdf. *}%
\Msg{* *}%
\Msg{* The package is released under LPPL *}%
\Msg{* *}%
\Msg{* Happy TeXing! *}%
\Msg{*****************************************************}%

908
acmauthoryear.bbx Normal file
View File

@ -0,0 +1,908 @@
\ProvidesFile{acmauthoryear.bbx}[2022-02-14 v0.1 biblatex bibliography style]
% Inherit a default style
\RequireBibliographyStyle{authoryear-comp}
%%% New command definitions from trad-standard.bbx
\newcommand*{\newcommaunit}{\@ifstar\newcommaunitStar\newcommaunitNoStar}
\newcommand*{\newcommaunitStar}{\setunit*{\addcomma\space}}
\newcommand*{\newcommaunitNoStar}{\setunit{\addcomma\space}}
%%% Forward compatibility for date+extradate
\ifcsundef{ifbibmacroundef}{
\ifcsundef{abx@macro@date+extradate}{ %%% For really really old biblatex that miss \ifbibmacroundef
\blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
Please consider updating your version of biblatex.\MessageBreak
Using 'date+extrayear' instead}%
\providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
}{}
}
{
\ifbibmacroundef{date+extradate}{
\blx@warning{bibmacro 'date+extradate' is missing.\MessageBreak
Please consider updating your version of biblatex.\MessageBreak
Using 'date+extrayear' instead}%
\providebibmacro*{date+extradate}{\usebibmacro{date+extrayear}}
}{}
}
%%% Localisation strings for ACM
\DefineBibliographyStrings{american}{%
mathesis = {Master's thesis},
phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
editor = {(Ed\adddot)},
editors = {(Eds\adddot)},
edition = {ed\adddot},
}
%%% Formatting for fields
%\DeclareFieldFormat
% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
% {title}{#1}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{numpages}{#1 pages}
\DeclareFieldFormat{number}{#1}
\DeclareFieldFormat{articleno}{Article #1}
\DeclareFieldFormat{key}{#1}
\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{edition}{%
\printtext[parens]{\ifinteger{#1}
{\mkbibordedition{#1}~\bibstring{edition}}
{#1\isdot~\bibstring{edition}}}}
% Handle urls field containing 'and' separated list of URLs
% https://github.com/plk/biblatex/issues/229
\DeclareListFormat{urls}{%
\url{#1}%
\ifthenelse{\value{listcount}<\value{liststop}}
{\addcomma\space}
{}}
\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
%%% Bibmacro definitions
\renewbibmacro*{translator+others}{%
\ifboolexpr{
test \ifusetranslator
and
not test {\ifnameundef{translator}}
}
{\printnames{translator}%
\setunit{\addcomma\space}%
\usebibmacro{translator+othersstrg}%
\clearname{translator}}
{\printfield{key}}}
\newbibmacro*{year}{%
\iffieldundef{year}%
{\printtext{[n.\ d.]}}%
{\printfield{year}}%
}
\renewbibmacro*{date}{\printtext[parens]{\printdate}}
\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
{\iffieldundef{lastaccessed}
{}
{\printfield{lastaccessed}%
\setunit*{\addspace}}%
}
{\usebibmacro{urldate}%
\setunit*{\addspace}}%
\usebibmacro{url}%
}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addcomma\space}%
\iffieldundef{series}
{}
{\newunit%
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+date+pages+eid}%
\newcommaunit%
% \setunit{\addspace}%
\usebibmacro{issue-issue}%
\setunit*{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\newbibmacro*{volume+number+date+pages+eid}{%
\printfield{volume}%
\setunit*{\addcomma\space}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\setunit{\addcomma\space}
\usebibmacro{date-ifmonth}
\setunit{\addcomma\space}%
\iffieldundef{pages}%
{\printfield{numpages}}%
{\printfield{pages}}%
\newcommaunit%
\printfield{eid}}%
\renewbibmacro*{chapter+pages}{%
\printfield{chapter}%
\setunit{\bibpagespunct}%
\iffieldundef{pages}%
{\printfield{numpages}}%
{\printfield{pages}}%
\newunit}
\renewbibmacro*{editor+others}{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\printnames{editor}%
\setunit{\addcomma\space}%
\usebibmacro{editor+othersstrg}%
\clearname{editor}}
{\iflistundef{organization}{}{\printlist{organization}}}
\usebibmacro{date+extradate}
}
\newbibmacro*{issue-issue}{%
\iffieldundef{issue}%
{}%
{\printfield{issue}%
\setunit*{\addcomma\space}%
\usebibmacro{date-ifmonth}%
}%
\newunit}
\newbibmacro*{maintitle+booktitle+series+number}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}%
\usebibmacro{booktitle}%
\setunit*{\addspace}
\printfield[parens]{series}%
\setunit*{\addspace}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\newunit
}
\renewbibmacro*{booktitle}{%
\ifboolexpr{
test {\iffieldundef{booktitle}}
and
test {\iffieldundef{booksubtitle}}
}
{}
{\printtext[booktitle]{%
\printfield[titlecase]{booktitle}%
\iffieldundef{booksubtitle}{}{
\setunit{\subtitlepunct}%
\printfield[titlecase]{booksubtitle}}%
}%
}%
\printfield{booktitleaddon}}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\addcomma\space}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\setunit{\addcomma\space}%
\printfield{eid}}
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date-ifmonth}%
\newunit}
\newbibmacro{date-ifmonth}{%
\iffieldundef{month}{}{%
\usebibmacro{date}
}%
}
\renewbibmacro*{institution+location+date}{%
\printlist{school}%
\setunit*{\addcomma\space}%
\printlist{institution}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date-ifmonth}%
\newunit}
\renewbibmacro*{periodical}{%
\iffieldundef{title}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}%
\newunit%
\usebibmacro{journal}}
\renewbibmacro*{issue+date}{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}
\renewbibmacro*{title+issuetitle}{%
\usebibmacro{periodical}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\printfield{volume}%
\setunit*{\addcomma\space}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\setunit{\addcomma\space}%
\printfield{eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\renewbibmacro*{doi+eprint+url}{%
\iftoggle{bbx:url}
{\iffieldundef{doi}{
\usebibmacro{url+urldate}
}{\iffieldundef{distinctURL}
{}
{\usebibmacro{url+urldate}}
}
}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\iftoggle{bbx:doi}
{\printfield{doi}}
{}}
%%% Definitions for drivers (alphabetical)
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock%
\usebibmacro{title}%
\newunit%
\printlist{language}%
\newunit\newblock%
\usebibmacro{byauthor}%
\newunit\newblock%
\usebibmacro{bytranslator+others}%
\newunit\newblock%
\printfield{version}%
\newunit\newblock%
\usebibmacro{journal+issuetitle}%
\newunit%
\usebibmacro{byeditor+others}%
\newunit%
\printfield{note}%
\newunit\newblock%
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock%
\usebibmacro{doi+eprint+url}%
\newunit\newblock%
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock%
\usebibmacro{related}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{maintitle+title}%
\newunit%
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\usebibmacro{series+number}%
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\newunit\newblock
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\iffieldundef{author}%
{\usebibmacro{byeditor+others}}%
{\usebibmacro{author/translator+others}}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
% \usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\iffieldundef{author}{}%if undef then we already printed editor
{\usebibmacro{byeditor+others}}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle+series+number}%
\newunit\newblock
\usebibmacro{event+venue+date}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{manual}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor}%
\newunit\newblock
\printfield{edition}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{misc}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{howpublished}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\usebibmacro{organization+location+date}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{online}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit\newblock
\usebibmacro{date-ifmonth}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareFieldFormat[patent]{number}{Patent No.~#1}
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{date}%
\newunit\newblock
\printfield{type}%
\setunit*{\addspace}%
\printfield{number}%
\iflistundef{location}
{}
{\setunit*{\addspace}%
\printtext[parens]{%
\printlist[][-\value{listtotal}]{location}}}%
\newunit\newblock
\usebibmacro{byholder}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{periodical}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{editor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title+issuetitle}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byeditor}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{issn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{report}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\printfield{type}%
\setunit*{\addspace}%
\printfield{number}%
\newunit\newblock
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\usebibmacro{institution+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isrn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\printfield{type}%
\newunit
\usebibmacro{institution+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
%
% Include support for software entries
%
\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
%
% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
%
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map{
\step[typesource=artifactsoftware,typetarget=software]
\step[typesource=artifactdataset,typetarget=dataset]
}
}
}
%%% Compatibility with ACM bibtex formatting
%
% Show given name first in the reference list
%
\DeclareNameAlias{sortname}{given-family}
%
% Produce a bibliography with small font size
%
\renewcommand*{\bibfont}{\bibliofont\footnotesize}
%
% Remove parentheses from date+extradate
%
\RequirePackage{xpatch}
\xpatchbibmacro{date+extradate}{%
\printtext[parens]%
}{%
\newblock\setunit*{.\space}%
\printtext%
}{}{}
%%% Set option values for ACM style
\ExecuteBibliographyOptions{
dashed=false, % Do not use dashes for bibliography items with the same set of authors
labeldate=year,
abbreviate=true,
dateabbrev=true,
isbn=true,
doi=true,
urldate=comp,
url=true,
maxbibnames=9,
maxcitenames=2,
backref=false,
sorting=nty,
halid=true,
swhid=true,
swlabels=true,
vcs=true,
license=false,
language=american
}
% We use lowercase DOI
\DeclareFieldFormat{doi}{%
doi\addcolon
\ifhyperref
{\href{https://doi.org/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}

219
acmauthoryear.cbx Normal file
View File

@ -0,0 +1,219 @@
\ProvidesFile{acmauthoryear.cbx}[2022-02-14 v0.1]
\RequireCitationStyle{authoryear-comp}
\RequirePackage{xpatch}
%
% Hyperlink citations like acmart natbib implementation
%
% From https://tex.stackexchange.com/a/27615/133551
% Combine label and labelyear links
\xpatchbibmacro{cite}
{\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}}
{\printtext[bibhyperref]{%
\DeclareFieldAlias{bibhyperref}{default}%
\usebibmacro{cite:label}%
\setunit{\printdelim{nonameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}}}
{}
{\PackageWarning{biblatex-patch}
{Failed to patch cite bibmacro}}
% Include labelname in labelyear link
\xpatchbibmacro{cite}
{\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}}
{\printtext[bibhyperref]{%
\DeclareFieldAlias{bibhyperref}{default}%
\printnames{labelname}%
\setunit{\printdelim{nameyeardelim}}%
\usebibmacro{cite:labeldate+extradate}}}
{}
{\PackageWarning{biblatex-patch}
{Failed to patch cite bibmacro}}
\renewbibmacro*{textcite}{%
\iffieldequals{namehash}{\cbx@lasthash}
{\iffieldundef{shorthand}
{\ifthenelse{\iffieldequals{labelyear}{\cbx@lastyear}\AND
\(\value{multicitecount}=0\OR\iffieldundef{postnote}\)}
{\setunit{\addcomma}%
\usebibmacro{cite:extradate}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:labeldate+extradate}%
\savefield{labelyear}{\cbx@lastyear}}}
{\setunit{\compcitedelim}%
\usebibmacro{cite:shorthand}%
\global\undef\cbx@lastyear}}
{\ifnameundef{labelname}
{\iffieldundef{shorthand}
{\usebibmacro{cite:label}%
\setunit{%
\global\booltrue{cbx:parens}%
\printdelim{nonameyeardelim}\bibopenbracket}%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\usebibmacro{cite:labeldate+extradate}}
{\usebibmacro{cite:shorthand}}}
{\printnames{labelname}%
\setunit{%
\global\booltrue{cbx:parens}%
\printdelim{nameyeardelim}\bibopenbracket}%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\iffieldundef{shorthand}
{\iffieldundef{labelyear}
{\usebibmacro{cite:label}}
{\usebibmacro{cite:labeldate+extradate}}%
\savefield{labelyear}{\cbx@lastyear}}
{\usebibmacro{cite:shorthand}%
\global\undef\cbx@lastyear}}%
\stepcounter{textcitecount}%
\savefield{namehash}{\cbx@lasthash}}%
\setunit{%
\ifbool{cbx:parens}
{\bibclosebracket\global\boolfalse{cbx:parens}}
{}%
\textcitedelim}}
\xpatchbibmacro{textcite}
{\printnames{labelname}}
{\printtext[bibhyperref]{\printnames{labelname}}}
{}
{\PackageWarning{biblatex-patch}
{Failed to patch textcite bibmacro}}
\renewbibmacro*{textcite:postnote}{%
\usebibmacro{postnote}%
\ifthenelse{\value{multicitecount}=\value{multicitetotal}}
{\setunit{}%
\printtext{%
\ifbool{cbx:parens}
{\bibclosebracket\global\boolfalse{cbx:parens}}
{}}}
{\setunit{%
\ifbool{cbx:parens}
{\bibclosebracket\global\boolfalse{cbx:parens}}
{}%
\textcitedelim}}}
% NEW
\newbibmacro*{citeauthor}{%
\ifnameundef{labelname}
{\iffieldundef{shorthand}
{\printtext[bibhyperref]{%
\usebibmacro{cite:label}}%
\setunit{%
\global\booltrue{cbx:parens}%
\printdelim{nonameyeardelim}\bibopenbracket}%
\ifnumequal{\value{citecount}}{1}
{\usebibmacro{prenote}}
{}%
\printtext[bibhyperref]{\usebibmacro{cite:labeldate+extradate}}}
{\printtext[bibhyperref]{\usebibmacro{cite:shorthand}}}}
\printtext[bibhyperref]{\printnames{labelname}}}
%
% Put brackets around citations
%
\DeclareCiteCommand{\cite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\cite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\parencite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand*{\parencite}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\parencites}[\mkbibbrackets]{\parencite}
{\setunit{\multicitedelim}}
\DeclareCiteCommand{\footcite}[\mkbibfootnote]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\footcitetext}[\mkbibfootnotetext]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\smartcite}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\smartcites}[\iffootnote\mkbibbrackets\mkbibfootnote]
{\smartcite}{\setunit{\multicitedelim}}
\DeclareCiteCommand{\citeauthor}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeauthor}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\citeyear}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
\DeclareCiteCommand{\citeyearpar}[\mkbibbrackets]
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{citeyear}}
{}
{\usebibmacro{postnote}}
%
% Provide aliases for natbib-compatible commands
%
\newcommand*{\citep}{\parencite}
\newcommand*{\citet}{\textcite}
% add others here
\endinput

33
acmdatamodel.dbx Normal file
View File

@ -0,0 +1,33 @@
% Teach biblatex about numpages field
\DeclareDatamodelFields[type=field, datatype=literal]{numpages}
\DeclareDatamodelEntryfields{numpages}
% Teach biblatex about articleno field
\DeclareDatamodelFields[type=field, datatype=literal]{articleno}
\DeclareDatamodelEntryfields{articleno}
% Teach biblatex about urls field
\DeclareDatamodelFields[type=list, datatype=uri]{urls}
\DeclareDatamodelEntryfields{urls}
% Teach biblatex about school field
\DeclareDatamodelFields[type=list, datatype=literal]{school}
\DeclareDatamodelEntryfields[thesis]{school}
\DeclareDatamodelFields[type=field, datatype=literal]{key}
\DeclareDatamodelEntryfields{key}
% Teach biblatex about lastaccessed field
\DeclareDatamodelFields[type=field,datatype=literal]{lastaccessed}
\DeclareDatamodelEntryfields{lastaccessed}
% Teach biblatex about distincturl field
\DeclareDatamodelFields[type=field, datatype=literal]{distinctURL}
\DeclareDatamodelEntryfields{distinctURL}
%
% include software data model from biblatex-software
%
\blx@inputonce{software.dbx}{biblatex data model extension for software}{}{}{}{}

893
acmnumeric.bbx Normal file
View File

@ -0,0 +1,893 @@
\ProvidesFile{acmnumeric.bbx}[2017-09-27 v0.1 biblatex bibliography style]
% Inherit a default style
\RequireBibliographyStyle{trad-plain}
%%% Localisation strings for ACM
\DefineBibliographyStrings{american}{%
mathesis = {Master's thesis},
phdthesis = {Ph\adddot{}D\adddotspace Dissertation},
editor = {(Ed\adddot)},
editors = {(Eds\adddot)},
edition = {ed\adddot},
}
%%% Formatting for fields
%\DeclareFieldFormat
% [article,inbook,incollection,inproceedings,patent,thesis,unpublished]
% {title}{#1}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{numpages}{#1 pages}
\DeclareFieldFormat{number}{#1}
\DeclareFieldFormat{articleno}{Article #1}
\DeclareFieldFormat{key}{#1}
\DeclareFieldFormat{urldate}{Retrieved\space{}#1\space{}from}
\DeclareFieldFormat{lastaccessed}{Retrieved\space{}#1\space{}from}
\DeclareFieldFormat{url}{\url{#1}}
\DeclareFieldFormat{edition}{%
\printtext[parens]{\ifinteger{#1}
{\mkbibordedition{#1}~\bibstring{edition}}
{#1\isdot~\bibstring{edition}}}}
% Handle urls field containing 'and' separated list of URLs
% https://github.com/plk/biblatex/issues/229
\DeclareListFormat{urls}{%
\url{#1}%
\ifthenelse{\value{listcount}<\value{liststop}}
{\addcomma\space}
{}}
\renewbibmacro*{url}{\iffieldundef{url}{\printlist{urls}}{\printfield{url}}}
%%% Bibmacro definitions
\renewbibmacro*{translator+others}{%
\ifboolexpr{
test \ifusetranslator
and
not test {\ifnameundef{translator}}
}
{\printnames{translator}%
\setunit{\addcomma\space}%
\usebibmacro{translator+othersstrg}%
\clearname{translator}}
{\printfield{key}}}
\newbibmacro*{year}{%
\iffieldundef{year}%
{\printtext{[n.\ d.]}}%
{\printfield{year}}%
}
\renewbibmacro*{date}{\printtext[parens]{\printdate}}
\renewbibmacro*{url+urldate}{\iffieldundef{urlyear}
{\iffieldundef{lastaccessed}
{}
{\printfield{lastaccessed}%
\setunit*{\addspace}}%
}
{\usebibmacro{urldate}%
\setunit*{\addspace}}%
\usebibmacro{url}%
}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addcomma\space}%
\iffieldundef{series}
{}
{\newunit%
\printfield{series}%
\setunit{\addspace}}%
\usebibmacro{volume+number+date+pages+eid}%
\newcommaunit%
% \setunit{\addspace}%
\usebibmacro{issue-issue}%
\setunit*{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\newbibmacro*{volume+number+date+pages+eid}{%
\printfield{volume}%
\setunit*{\addcomma\space}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\setunit{\addcomma\space}
\usebibmacro{date-ifmonth}
\setunit{\addcomma\space}%
\iffieldundef{pages}%
{\printfield{numpages}}%
{\printfield{pages}}%
\newcommaunit%
\printfield{eid}}%
\renewbibmacro*{chapter+pages}{%
\printfield{chapter}%
\setunit{\bibpagespunct}%
\iffieldundef{pages}%
{\printfield{numpages}}%
{\printfield{pages}}%
\newunit}
\renewbibmacro*{editor+others}{%
\ifboolexpr{
test \ifuseeditor
and
not test {\ifnameundef{editor}}
}
{\printnames{editor}%
\setunit{\addcomma\space}%
\usebibmacro{editor+othersstrg}%
\clearname{editor}}
{\iflistundef{organization}{}{\printlist{organization}}}}
\newbibmacro*{issue-issue}{%
\iffieldundef{issue}%
{}%
{\printfield{issue}%
\setunit*{\addcomma\space}%
\usebibmacro{date-ifmonth}%
}%
\newunit}
\newbibmacro*{maintitle+booktitle+series+number}{%
\iffieldundef{maintitle}
{}
{\usebibmacro{maintitle}%
\newunit\newblock
\iffieldundef{volume}
{}
{\printfield{volume}%
\printfield{part}%
\setunit{\addcolon\space}}}%
\usebibmacro{booktitle}%
\setunit*{\addspace}
\printfield[parens]{series}%
\setunit*{\addspace}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\newunit
}
\renewbibmacro*{booktitle}{%
\ifboolexpr{
test {\iffieldundef{booktitle}}
and
test {\iffieldundef{booksubtitle}}
}
{}
{\printtext[booktitle]{%
\printfield[titlecase]{booktitle}%
\iffieldundef{booksubtitle}{}{
\setunit{\subtitlepunct}%
\printfield[titlecase]{booksubtitle}}%
}%
}%
\printfield{booktitleaddon}}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\setunit*{\addcomma\space}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\setunit{\addcomma\space}%
\printfield{eid}}
\renewbibmacro*{publisher+location+date}{%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date-ifmonth}%
\newunit}
\newbibmacro{date-ifmonth}{%
\iffieldundef{month}{}{%
\usebibmacro{date}
}%
}
\renewbibmacro*{institution+location+date}{%
\printlist{school}%
\setunit*{\addcomma\space}%
\printlist{institution}%
\setunit*{\addcomma\space}%
\printlist{location}%
\setunit*{\addcomma\space}%
\usebibmacro{date-ifmonth}%
\newunit}
\renewbibmacro*{periodical}{%
\iffieldundef{title}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}}%
\newunit%
\usebibmacro{journal}}
\renewbibmacro*{issue+date}{%
\iffieldundef{issue}
{\usebibmacro{date}}
{\printfield{issue}%
\setunit*{\addspace}%
\usebibmacro{date}}%
\newunit}
\renewbibmacro*{title+issuetitle}{%
\usebibmacro{periodical}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\printfield{volume}%
\setunit*{\addcomma\space}%
\printfield{number}%
\setunit*{\addcomma\space}%
\printfield{articleno}
\setunit{\addcomma\space}%
\printfield{eid}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
\renewbibmacro*{doi+eprint+url}{%
\iftoggle{bbx:url}
{\iffieldundef{doi}{
\usebibmacro{url+urldate}
}{\iffieldundef{distinctURL}
{}
{\usebibmacro{url+urldate}}
}
}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\iftoggle{bbx:doi}
{\printfield{doi}}
{}}
%%% Definitions for drivers (alphabetical)
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock%
\usebibmacro{year}%
\newunit%
\usebibmacro{title}%
\newunit%
\printlist{language}%
\newunit\newblock%
\usebibmacro{byauthor}%
\newunit\newblock%
\usebibmacro{bytranslator+others}%
\newunit\newblock%
\printfield{version}%
\newunit\newblock%
\usebibmacro{journal+issuetitle}%
\newunit%
\usebibmacro{byeditor+others}%
\newunit%
\printfield{note}%
\newunit\newblock%
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock%
\usebibmacro{doi+eprint+url}%
\newunit\newblock%
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock%
\usebibmacro{related}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{book}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}%
\newunit%
\usebibmacro{maintitle+title}%
\newunit%
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{edition}%
\newunit
\usebibmacro{series+number}%
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\newunit\newblock
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{inbook}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\iffieldundef{author}%
{\usebibmacro{byeditor+others}}%
{\usebibmacro{author/translator+others}}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
% \usebibmacro{in:}%
\usebibmacro{bybookauthor}%
\newunit\newblock
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\iffieldundef{author}{}%if undef then we already printed editor
{\usebibmacro{byeditor+others}}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{incollection}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{edition}%
\newunit
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{inproceedings}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{in:}%
\usebibmacro{maintitle+booktitle+series+number}%
\newunit\newblock
\usebibmacro{event+venue+date}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\iffieldundef{maintitle}
{\printfield{volume}%
\printfield{part}}
{}%
\newunit
\printfield{volumes}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{manual}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor}%
\newunit\newblock
\printfield{edition}%
\newunit\newblock
\usebibmacro{series+number}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit
\usebibmacro{publisher+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{misc}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{howpublished}%
\newunit\newblock
\printfield{type}%
\newunit
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\usebibmacro{organization+location+date}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{online}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author/editor+others/translator+others}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{byeditor+others}%
\newunit\newblock
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\printlist{organization}%
\newunit\newblock
\usebibmacro{date-ifmonth}%
\newunit\newblock
\iftoggle{bbx:eprint}
{\usebibmacro{eprint}}
{}%
\newunit\newblock
\usebibmacro{url+urldate}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareFieldFormat[patent]{number}{Patent No.~#1}
\DeclareBibliographyDriver{patent}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}%
\newunit
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\usebibmacro{date}%
\newunit\newblock
\printfield{type}%
\setunit*{\addspace}%
\printfield{number}%
\iflistundef{location}
{}
{\setunit*{\addspace}%
\printtext[parens]{%
\printlist[][-\value{listtotal}]{location}}}%
\newunit\newblock
\usebibmacro{byholder}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{periodical}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{editor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit
\usebibmacro{title+issuetitle}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byeditor}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{issn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{report}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\printfield{type}%
\setunit*{\addspace}%
\printfield{number}%
\newunit\newblock
\printfield{version}%
\newunit
\printfield{note}%
\newunit\newblock
\usebibmacro{institution+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isrn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
\DeclareBibliographyDriver{thesis}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{year}
\newunit
\usebibmacro{title}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byauthor}%
\newunit\newblock
\printfield{type}%
\newunit
\usebibmacro{institution+location+date}%
\newunit\newblock
\usebibmacro{chapter+pages}%
\newunit
\printfield{pagetotal}%
\newunit\newblock
\iftoggle{bbx:isbn}
{\printfield{isbn}}
{}%
\newunit\newblock
\usebibmacro{doi+eprint+url}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\printfield{note}%
\newunit\newblock
\iftoggle{bbx:related}
{\usebibmacro{related:init}%
\usebibmacro{related}}
{}%
\usebibmacro{finentry}}
%
% Include support for software entries
%
\blx@inputonce{software.bbx}{biblatex style for software}{}{}{}{}
%
% Handle ACM specific ArtifactSoftware entry exactly as the software entry (a soft alias will not work)
%
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map{
\step[typesource=artifactsoftware,typetarget=software]
\step[typesource=artifactdataset,typetarget=dataset]
}
}
}
%
% Show given name first in the reference list
%
\DeclareNameAlias{sortname}{given-family}
%
% Produce a bibliography with small font size
%
\renewcommand*{\bibfont}{\bibliofont\footnotesize}
%%% Set option values for ACM style
\ExecuteBibliographyOptions{
labeldate=year,
abbreviate=true,
dateabbrev=true,
isbn=true,
doi=true,
urldate=comp,
url=true,
maxbibnames=9,
maxcitenames=2,
backref=false,
sorting=nty,
halid=true,
swhid=true,
swlabels=true,
vcs=true,
license=false,
language=american
}
% We use lowercase DOI
\DeclareFieldFormat{doi}{%
doi\addcolon
\ifhyperref
{\href{https://doi.org/#1}{\nolinkurl{#1}}}
{\nolinkurl{#1}}}

5
acmnumeric.cbx Normal file
View File

@ -0,0 +1,5 @@
\ProvidesFile{acmnumeric.cbx}[2017-09-27 v0.1]
\RequireCitationStyle{numeric}
\endinput

View File

@ -1,12 +1,14 @@
@misc{AFrame,
title = {{A-Frame}: A Web Framework for Building Virtual Reality Experiences},
author = {{A-Frame Authors}},
howpublished = {\url{https://aframe.io/}}
howpublished = {\url{https://aframe.io/}},
year = {[n.\,d.]}
}
@misc{AndroidXRUnity,
title = {{D}evelop with {U}nity for {XR}},
author = {{Google Inc.}},
howpublished = {\url{https://developer.android.com/develop/xr/unity}}
howpublished = {\url{https://developer.android.com/develop/xr/unity}},
year = {[n.\,d.]}
}
@incollection{AppleRealityKitChapter9,
title = {{RealityKit}},
@ -20,37 +22,44 @@
@misc{AppleVisionOS,
title = {{visionOS}},
author = {{Apple Inc.}},
howpublished = {\url{https://developer.apple.com/visionos/}}
howpublished = {\url{https://developer.apple.com/visionos/}},
year = {[n.\,d.]}
}
@misc{AppleVisionOSRenderPipeline,
title = {Understanding the visionOS Render Pipeline},
author = {{Apple Inc.}},
howpublished = {\url{https://developer.apple.com/documentation/visionos/understanding-the-visionos-render-pipeline}}
howpublished = {\url{https://developer.apple.com/documentation/visionos/understanding-the-visionos-render-pipeline}},
year = {[n.\,d.]}
}
@misc{ARCoreCloudAnchors,
title = {Cloud Anchors allow different users to share AR experiences},
author = {{Google Inc.}},
howpublished = {\url{https://developers.google.com/ar/develop/cloud-anchors}}
howpublished = {\url{https://developers.google.com/ar/develop/cloud-anchors}},
year = {[n.\,d.]}
}
@misc{ARCoreDocumentation,
title = {Overview of ARCore and Supported Development Environments},
author = {{Google Inc.}},
howpublished = {\url{https://developers.google.com/ar/develop}}
howpublished = {\url{https://developers.google.com/ar/develop}},
year = {[n.\,d.]}
}
@misc{ARKitDocumentation,
title = {{ARKit}},
author = {{Apple Inc.}},
howpublished = {\url{https://developer.apple.com/documentation/arkit}}
howpublished = {\url{https://developer.apple.com/documentation/arkit}},
year = {[n.\,d.]}
}
@misc{ARWorldMap,
title = {{ARWorldMap}},
author = {{Apple Inc.}},
howpublished = {\url{https://developer.apple.com/documentation/arkit/arworldmap}}
howpublished = {\url{https://developer.apple.com/documentation/arkit/arworldmap}},
year = {[n.\,d.]}
}
@misc{ARKitWorldAnchor,
title = {WorldAnchor},
author = {{Apple Inc.}},
howpublished = {\url{https://developer.apple.com/documentation/arkit/worldanchor}}
howpublished = {\url{https://developer.apple.com/documentation/arkit/worldanchor}},
year = {[n.\,d.]}
}
@inproceedings{huynh2022layerable,
title = {Layerable Apps: Comparing Concurrent and Exclusive Display of Augmented Reality Applications},
@ -62,7 +71,8 @@
}
@misc{khronosopenxr,
title = {{OpenXR} - {H}igh-performance access to {AR} and {VR} platforms and devices},
howpublished = {\url{https://www.khronos.org/openxr}}
howpublished = {\url{https://www.khronos.org/openxr}},
year = {[n.\,d.]}
}
@techreport{knibbe2015juggling,
title = {Juggling the Effects of Latency: Software Approaches to Minimizing Latency in Dynamic Projector-Camera Systems},
@ -104,17 +114,20 @@
@misc{MagicLeapSpacesApp,
title = {{S}paces {A}pplication},
author = {{Magic Leap, Inc.}},
howpublished = {\url{https://developer-docs.magicleap.cloud/docs/guides/features/spaces/spaces-tool/}}
howpublished = {\url{https://developer-docs.magicleap.cloud/docs/guides/features/spaces/spaces-tool/}},
year = {[n.\,d.]}
}
@misc{MagicLeapSpatialAnchors,
title = {{S}patial {A}nchors},
author = {{Magic Leap, Inc.}},
howpublished = {\url{https://developer-docs.magicleap.cloud/docs/guides/features/spaces/spatial-anchors/}}
howpublished = {\url{https://developer-docs.magicleap.cloud/docs/guides/features/spaces/spatial-anchors/}},
year = {[n.\,d.]}
}
@misc{MetaSpatialAnchorsPersist,
title = {{S}patial {A}nchors},
author = {{Meta Platforms, Inc.}},
howpublished = {\url{https://developers.meta.com/horizon/documentation/unity/unity-spatial-anchors-persist-content/}}
howpublished = {\url{https://developers.meta.com/horizon/documentation/unity/unity-spatial-anchors-persist-content/}},
year = {[n.\,d.]}
}
@misc{MicrosoftLearnAzureSpatialAnchors,
title = {Intro to Azure Mixed Reality Services: Azure Spatial Anchors},
@ -137,7 +150,8 @@
@software{ros,
title = {{R}obot {O}perating {S}ystem ({ROS})},
author = {{Stanford Artificial Intelligence Laboratory et al.}},
howpublished = {\url{https://www.ros.org}}
howpublished = {\url{https://www.ros.org}},
year = {[n.\,d.]}
}
@inproceedings{Ruth2019ARsecurity,
title = {Secure multi-user content sharing for augmented reality applications},
@ -154,20 +168,24 @@
@misc{TrackingPointsWorldSpace,
title = {Tracking Specific Points in World Space},
author = {{Apple Inc.}},
howpublished = {\url{https://developer.apple.com/documentation/visionos/tracking-points-in-world-space/}}
howpublished = {\url{https://developer.apple.com/documentation/visionos/tracking-points-in-world-space/}},
year = {[n.\,d.]}
}
@misc{unity_dots,
title = {{U}nity's {D}ata-{O}riented {T}echnology {S}tack (DOTS)},
howpublished = {\url{https://unity.com/dots}}
howpublished = {\url{https://unity.com/dots}},
year = {[n.\,d.]}
}
@misc{unity_mars,
title = {{U}nity {M}ars --- {A}dvanced Workflows for {AR} Developers},
howpublished = {\url{https://unity.com/products/unity-mars}}
howpublished = {\url{https://unity.com/products/unity-mars}},
year = {[n.\,d.]}
}
@misc{UnityECSConcepts,
title = {Entity Component System Introduction},
author = {{Unity Technologies}},
howpublished = {\url{https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/concepts-ecs.html}}
howpublished = {\url{https://docs.unity3d.com/Packages/com.unity.entities@1.3/manual/concepts-ecs.html}},
year = {[n.\,d.]}
}
@article{van2010survey,
title = {A Survey of Augmented Reality Technologies, Applications and Limitations},
@ -214,5 +232,6 @@
@misc{XDGDesktopPortals,
title = {XDG Desktop Portals},
author = {{freedesktop.org}},
howpublished = {\url{https://flatpak.github.io/xdg-desktop-portal/}}
howpublished = {\url{https://flatpak.github.io/xdg-desktop-portal/}},
year = {[n.\,d.]}
}

272
main.tex
View File

@ -1,43 +1,61 @@
% $Id: template.tex 11 2007-04-03 22:25:53Z jpeltier $
%% Commands for TeXCount
%TC:macro \cite [option:text,text]
%TC:macro \citep [option:text,text]
%TC:macro \citet [option:text,text]
%TC:envir table 0 1
%TC:envir table* 0 1
%TC:envir tabular [ignore] word
%TC:envir displaymath 0 word
%TC:envir math 0 word
%TC:envir comment 0 0
%%
%% The first command in your LaTeX source must be the \documentclass
%% command.
%%
%% For submission and review of your manuscript please change the
%% command to \documentclass[manuscript, screen, review]{acmart}.
%%
%% When submitting camera ready or to TAPS, please change the command
%% to \documentclass[sigconf]{acmart} or whichever template is required
%% for your publication.
%%
%%
%%\documentclass[sigconf,authordraft]{acmart}
\documentclass[manuscript,review,anonymous]{acmart}
%%\documentclass[manuscript,review]{acmart}
%%
%% \BibTeX command to typeset BibTeX logo in the docs
\AtBeginDocument{%
\providecommand\BibTeX{{%
Bib\TeX}}}
%\documentclass{vgtc} % final (conference style)
\documentclass[review]{vgtc} % review
%\documentclass[widereview]{vgtc} % wide-spaced review
%\documentclass[preprint]{vgtc} % preprint
%\documentclass[electronic]{vgtc} % electronic version
%% Uncomment one of the lines above depending on where your paper is
%% in the conference process. ``review'' and ``widereview'' are for review
%% submission, ``preprint'' is for pre-publication, and the final version
%% doesn't use a specific qualifier. Further, ``electronic'' includes
%% hyperreferences for more convenient online viewing.
%% Please use one of the ``review'' options in combination with the
%% assigned online id (see below) ONLY if your paper uses a double blind
%% review process. Some conferences, like IEEE Vis and InfoVis, have NOT
%% in the past.
%% Figures should be in CMYK or Grey scale format, otherwise, colour
%% shifting may occur during the printing process.
%% it is recomended to use ``\cref{sec:bla}'' instead of ``Fig.~\ref{sec:bla}''
\graphicspath{{figures/}{pictures/}{images/}{./}} % where to search for the images
\usepackage{times} % we use Times as the main font
\renewcommand*\ttdefault{txtt} % a nicer typewriter font
%% We encourage the use of mathptmx for consistent usage of times font
%% throughout the proceedings. However, if you encounter conflicts
%% with other math-related packages, you may want to disable it.
\usepackage{mathptmx} % use matching math font
%% Rights management information. This information is sent to you
%% when you complete the rights form. These commands have SAMPLE
%% values in them; it is your responsibility as an author to replace
%% the commands and values with those provided to you when you
%% complete the rights form.
\setcopyright{acmlicensed}
\copyrightyear{2018}
\acmYear{2018}
\acmDOI{XXXXXXX.XXXXXXX}
%% These commands are for a PROCEEDINGS abstract or paper.
\acmConference[Conference acronym 'XX]{Make sure to enter the correct
conference title from your rights confirmation email}{June 03--05,
2018}{Woodstock, NY}
%%
%% Uncomment \acmBooktitle if the title of the proceedings is different
%% from ``Proceedings of ...''!
%%
%%\acmBooktitle{Woodstock '18: ACM Symposium on Neural Gaze Detection,
%% June 03--05, 2018, Woodstock, NY}
\acmISBN{978-1-4503-XXXX-X/2018/06}
%% Diogo's packages
\usepackage[svgnames]{xcolor}
\usepackage{cleveref}
\usepackage{svg}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{listings}
\PassOptionsToPackage{hyphens}{url}\usepackage[pagebackref,bookmarks]{hyperref}
% Diogo Custom colours
\colorlet{punct}{red!60!black}
@ -72,88 +90,138 @@
{]}{{{\color{delim}{]}}}}{1},
}
%% If you are submitting a paper to a conference for review with a double
%% blind reviewing process, please replace the value ``0'' below with your
%% OnlineID. Otherwise, you may safely leave it at ``0''.
\onlineid{1429}
%%
%% Submission ID.
%% Use this when submitting an article to a sponsored event. You'll
%% receive a unique submission ID from the organizers
%% of the event, and this ID should be used as the parameter to this command.
%%\acmSubmissionID{123-A56-BU3}
%% declare the category of your paper, only shown in review mode
\vgtccategory{Software architectures, toolkits, and engineering}
%%
%% For managing citations, it is recommended to use bibliography
%% files in BibTeX format.
%%
%% You can then either use BibTeX with the ACM-Reference-Format style,
%% or BibLaTeX with the acmnumeric or acmauthoryear sytles, that include
%% support for advanced citation of software artefact from the
%% biblatex-software package, also separately available on CTAN.
%%
%% Look at the sample-*-biblatex.tex files for templates showcasing
%% the biblatex styles.
%%
%% allow for this line if you want the electronic option to work properly
\vgtcinsertpkg
%% In preprint mode you may define your own headline. If not, the default IEEE copyright message will appear in preprint mode.
%\preprinttext{To appear in an IEEE VGTC sponsored conference.}
%% This adds a link to the version of the paper on IEEEXplore
%% Uncomment this line when you produce a preprint version of the article
%% after the article receives a DOI for the paper from IEEE
%\ieeedoi{xx.xxxx/TVCG.201x.xxxxxxx}
%%
%% The majority of ACM publications use numbered citations and
%% references. The command \citestyle{authoryear} switches to the
%% "author year" style.
%%
%% If you are preparing content for an event
%% sponsored by ACM SIGGRAPH, you must use the "author year" style of
%% citations and references.
%% Uncommenting
%% the next command will enable that style.
%%\citestyle{acmauthoryear}
%% Paper title.
%%
%% end of the preamble, start of the body of the document source.
\begin{document}
%%
%% The "title" command has an optional parameter,
%% allowing the author to define a "short title" to be used in page headers.
\title{AURA: The Augmented Reality Unified Representation Architecture}
%% This is how authors are specified in the conference style
%%
%% The "author" command and its associated commands are used to define
%% the authors and their affiliations.
%% Of note is the shared affiliation of the first two authors, and the
%% "authornote" and "authornotemark" commands
%% used to denote shared contribution to the research.
\author{Diogo Peralta Cordeiro}
\email{mail@diogo.site}
\orcid{0000-0002-0260-5121}
\author{João Borges de Sousa}
\email{jtasso@fe.up.pt}
\orcid{0000-0002-2528-4666}
\affiliation{%
\institution{University of Porto}
\city{Porto}
\country{Portugal}
}
%% Author and Affiliation (single author).
%%\author{Roy G. Biv\thanks{e-mail: roy.g.biv@aol.com}}
%%\affiliation{\scriptsize Allied Widgets Research}
%%
%% By default, the full list of authors will be used in the page
%% headers. Often, this list is too long, and will overlap
%% other information printed in the page headers. This command allows
%% the author to define a more concise list
%% of authors' names for this purpose.
\renewcommand{\shortauthors}{Diogo et al.}
%% Author and Affiliation (multiple authors with single affiliations).
%%\author{Roy G. Biv\thanks{e-mail: roy.g.biv@aol.com} %
%%\and Ed Grimley\thanks{e-mail:ed.grimley@aol.com} %
%%\and Martha Stewart\thanks{e-mail:martha.stewart@marthastewart.com}}
%%\affiliation{\scriptsize Martha Stewart Enterprises \\ Microsoft Research}
%%
%% The abstract is a short summary of the work to be presented in the
%% article.
\begin{abstract}
Augmented Reality (AR) integrates digital content into physical space across diverse platforms, including projection systems, head-mounted displays, and mobile devices. However, current AR frameworks lack a standardized, platform-independent method for applications to declare their spatial and system-level requirements. This fragmentation complicates cross-platform development, and hinders the coexistence of multiple AR applications within the same environment.
%% Author and Affiliation (multiple authors with multiple affiliations)
\author{Diogo Peralta Cordeiro\thanks{e-mail: mail@diogo.site} %
\and João Borges de Sousa\thanks{e-mail: jtasso@fe.up.pt}} %
\affiliation{\scriptsize University of Porto}
We introduce AURA --- the \textbf{A}ugmented Reality \textbf{U}nified \textbf{R}epresentation \textbf{A}rchitecture ---, which defines a manifest format through which applications specify their spatial components, interactive elements, participating agents, and required system resources. AURA enables multiple applications to run concurrently by assigning them to scoped containers and managing their access to shared physical surfaces. AURA also supports dynamic, context-aware behaviour via event-driven triggers and system-mediated data exchanges at runtime. Through examples, we demonstrate how AURA facilitates cross-platform development and application interoperability.
\end{abstract}
%% A teaser figure can be included as follows
\teaser{
%%
%% The code below is generated by the tool at http://dl.acm.org/ccs.cfm.
%% Please copy and paste the code instead of the example below.
%%
\begin{CCSXML}
<ccs2012>
<concept>
<concept_id>10003120.10003121.10003124.10010392</concept_id>
<concept_desc>Human-centered computing~Mixed / augmented reality</concept_desc>
<concept_significance>500</concept_significance>
</concept>
<concept>
<concept_id>10003120.10003138.10003139.10010904</concept_id>
<concept_desc>Human-centered computing~Ubiquitous computing</concept_desc>
<concept_significance>300</concept_significance>
</concept>
<concept>
<concept_id>10003120.10003123</concept_id>
<concept_desc>Human-centered computing~Interaction design</concept_desc>
<concept_significance>100</concept_significance>
</concept>
</ccs2012>
\end{CCSXML}
\ccsdesc[500]{Human-centered computing~Mixed / augmented reality}
\ccsdesc[300]{Human-centered computing~Ubiquitous computing}
\ccsdesc[100]{Human-centered computing~Interaction design}
%%
%% Keywords. The author(s) should pick words that accurately describe
%% the work being presented. Separate the keywords with commas.
\keywords{Spatial Computing, Application Manifest, Multi-application Systems, Intelligent Environments, Machine Perception, Interactive Spaces}
%% A "teaser" image appears between the author and affiliation
%% information and the body of the document, and typically spans the
%% page.
\begin{teaserfigure}
\centering
\includesvg[inkscapelatex=false, width=\linewidth]{figures/teaser.drawio.svg}
\includesvg[inkscapelatex=false, width=0.7\linewidth]{figures/teaser.drawio.svg}
\caption{Overview of AURA's role during multi-application deployment.
a) An AURA-based system scans the room, and independently created and launched applications submit their spatial and behavioural requirements through AURA manifests.
b) The AURA-powered Head-Mounted Display (HMD) identifies suitable components in the environment and, with user input, assigns them to each application by creating dedicated ambients (e.g., $\alpha_1$, $\alpha_2$). This allows Applications 1 and 2 to coexist within the same room.}
\label{fig:teaser}
}
\end{teaserfigure}
%% Abstract section.
\abstract{
Augmented Reality (AR) integrates digital content into physical space across diverse platforms, including projection systems, head-mounted displays, and mobile devices. However, current AR frameworks lack a standardized, platform-independent method for applications to declare their spatial and system-level requirements. This fragmentation complicates cross-platform development, and hinders the coexistence of multiple AR applications within the same environment.
We introduce AURA --- the \textbf{A}ugmented Reality \textbf{U}nified \textbf{R}epresentation \textbf{A}rchitecture ---, which defines a manifest format through which applications specify their spatial components, interactive elements, participating agents, and required system resources. AURA enables multiple applications to run concurrently by assigning them to scoped containers and managing their access to shared physical surfaces. AURA also supports dynamic, context-aware behaviour via event-driven triggers and system-mediated data exchanges at runtime. Through examples, we demonstrate how AURA facilitates cross-platform development and application interoperability.
} % end of abstract
%% Keywords that describe your work. Will show as 'Index Terms' in journal
%% please capitalize first letter and insert punctuation after last keyword.
\keywords{Human-centered computing --- Human computer interaction (HCI) --- Interaction paradigms --- Mixed / augmented reality;
Human-centered computing --- Ubiquitous and mobile computing --- Ubiquitous computing}
%% Copyright space is enabled by default as required by guidelines.
%% It is disabled by the 'review' option or via the following command:
% \nocopyrightspace
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%% START OF THE PAPER %%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%% The ``\maketitle'' command must be the first command after the
%% ``\begin{document}'' command. It prepares and prints the title block.
%% the only exception to this rule is the \firstsection command
\firstsection{Introduction}
\received{20 February 2007}
\received[revised]{12 March 2009}
\received[accepted]{5 June 2009}
%%
%% This command processes the author and affiliation and title
%% information and builds the first part of the formatted document.
\maketitle
%% \section{Introduction} %for journal use above \firstsection{..} instead
\section{Introduction}
Augmented Reality (AR) is emerging as a key paradigm for immersive computing, blending digital content with the physical world in real time. Despite rapid advances in hardware and toolkits, developing AR applications today remains a fragmented endeavour. Different platforms (e.g., mobile AR toolkits, smart-glasses) and engines (Unity, Unreal, etc.) impose distinct content representations and siloed runtime contexts. This fragmentation makes it difficult to coordinate multiple AR experiences together. In practice, users are confined to one AR application at a time, and there is no straightforward way to allow multiple AR apps to augment the environment concurrently \cite{huynh2022layerable}.
Most existing AR development platforms, such as Unity's XR Interaction Toolkit and Unreal Engine's AR APIs, are geared toward building single-application experiences. These tools provide abstractions for tracking, rendering, and input (for example, ARKit provides world tracking and scene understanding \cite{ARKitDocumentation}, and ARCore offers similar capabilities on Android \cite{ARCoreDocumentation}), but they lack a standardized model for representing application structure, coordinating access to physical components, or supporting interaction logic across applications. Unity's XR Interaction Toolkit, for instance, is a ``high-level, component-based, interaction system for creating VR and AR experiences'' \cite{AndroidXRUnity}, focused on common interactions within one application. This single-app focus limits scalability, complicates cross-platform deployment, and hinders the development of multi-application AR environments.
@ -592,11 +660,13 @@ Currently, AURA assumes a centralized runtime and lacks global synchronization g
Future work includes implementing a reference runtime with arbitration and event routing, formal validation of manifests and ambient compatibility constraints, and distributed orchestration across heterogeneous AR platforms. We are particularly interested in probabilistic extensions to heuristic evaluation for improving tracking and rendering on moving objects, as well as developing an ambient calculus for structured data exchange between components.
%\bibliographystyle{abbrv}
\bibliographystyle{abbrv-doi}
%\bibliographystyle{abbrv-doi-narrow}
%\bibliographystyle{abbrv-doi-hyperref}
%\bibliographystyle{abbrv-doi-hyperref-narrow}
%%
%% The next two lines define the bibliography style to be used, and
%% the bibliography file.
\bibliographystyle{ACM-Reference-Format}
\bibliography{biblio}
\end{document}
\endinput
%%
%% End of file `sample-sigconf-authordraft.tex'.

Binary file not shown.

Binary file not shown.

989
vgtc.cls
View File

@ -1,989 +0,0 @@
% `vgtc' LaTeX class.
% THIS FILE MAY NOT BE MODIFIED WITHOUT THE EXPRESS APPROVAL
% OF THE VGTC PUBLICATIONS CHAIR (submissions@vgtc.org).
%
% Changelog:
% - modifications by Matthew Brehmer on 2024/02/12
% - ACM CCS keywords replaced with index terms, so as to be consistent with full papers
% - added cleveref package and instructions for use, rather than using autoref (mirrorring full paper template)
% - added Supplemental Materials and Figure Credits sections at the end.
% - added supplemental materials instructions and goals, an example project
% on OSF.
% - added figure credits for CypressView.
% - replaced paper count figure with newly-made ones.
% - changed cross references to point to the top of the target float, rather than the caption.
% - added blue hyperlink coloring, now that electronic has long been the default.
% - removed sample.pdf & sample.eps.
% - removed Google Scholar fields from template.bib.
% - modifications by Cagatay Turkay and Soumya Dutta on 2019/09/11
% - modified the preprint article style to contain the IEEE copyright notices to produce IEEE compliant OA preprints.
% - included two different statements for journal and conference papers
% - added a new command \ieeedoi for authors to set IEEE generated DOIs on their preprints
% - added comments on the template.tex for preprint guidance
% - modifications by Tobias Isenberg on 2017/07/05
% - updated the instructions for author footer in template.tex for the journal template
% - modifications by Tobias Isenberg on 2017/06/14
% - improved handling of marginpars for conference style, added examples for both styles
% - modifications by Tobias Isenberg on 2017/06/13
% - updated link to ACM CCS in conference template tex
% - transitioned to the updated 2012 system to be used with \CCScatTwelve (1998 still possible)
% - updated CCS examples in conference template tex
% - added statement in journal template tex to leave the copyright block untouched
% - updated the DOI links in the bst files to use shorter https version
% - modifications by Filip Sadlo/Tobias Isenberg on 2017/03/16
% - revived latex mode (as opposed to pdflatex) by disabling \let\ifpdf\relax
% - note that packages that define \ifpdf (and thus lead to already defined
% \ifpdf) are obsolete and should be changed to use ifpdf package instead
% - added a comment to the actual tex template for those with compilation errors
% - modifications by Tobias Isenberg on 2016/07/19
% - fixed a bug in the hyperref data (missing comma, thanks to Christian
% Tominski)
% - adjusted behavior for when \vgtccategory{} is not set in review mode (print
% out "n/a")
% - added switch to print out paper type in review mode if desired in review
% mode, does not print anything if not used
% - added teaser width computation, limited the entire teaser to the width of
% the abstract
% - fixes to the bibTeX templates for how addresses in proceedings are used,
% now similar to inproceeding
% - fixes to the bibTeX templates for dois with more than one dash in them
% - fixes to the bibTeX templates: dois are now linked with https if only the
% pure doi was given
% - fixed caption behavior for tables due to caption expected above the table
% - modifications by Filip Sadlo on 2016/03/16
% - replaced \pdfoutput mechanism by \ifpdf because \pdfoutput was
% always detecting pdf output mode on current texlive installations
% - The modification follows the current version of egpubl.cls
% - modifications by Tobias Isenberg on 2016/03/24
% - improved marginpar
% - modifications by Tobias Isenberg on 2015/03/24
% - better compilation for pdfLaTeX
% - electronic option is now mandatory
% - hyperref settings redone, information automatically used for pdf information
% - microtype
% - some suggestions for style use
% - alternative bst files with DOI printing and hyperlinking
% - modifications by Meghan Haley on 2011/03/10
% - manuscript received dates changed for 2011 journal style
% - modifications by Steven Bergner on 2009/03/28
% - revived teaser feature
% - added captionmargin to align teaser caption with abstract width
% - modifications by Meghan Haley on 2006/07/20
% - manuscript received changed to 31 March for journal style
% - modifications by Steven Bergner on 2006/06/28
% - made review and preprint work for journal style
% - leveraged \firstsection{..} title above double column text
% - included diamond line (currently by loading .eps file)
% - adjusted headlines and footer (special on first page, with copyrighttext)
% - modifications by Steven Bergner on 2006/05/21
% - included 'electronic' option using method from egpubl.cls (c)by D.Fellner
% - included double column (full width) abstract/keywords/index terms,
% which can be toggled by (ex/in)clusion of 'journal' document option
% note: abstract is now a command not an environment, see template.tex
% - copyrightspace enabled by default with opt. \nocopyrightspace switch
% - 'CR categories' now called 'Index Terms'
% - adjusted {sub|subsub|}section headline spacing
% - adjusted to vgtc naming (from tcvg or acm)
% - modification of the acmsiggraph.cls class
% - modifications on 2004/04/06 by Torsten Moeller
% * many modifications to conform to VGTC standard
% - new heading style
% - new caption style
% - new reference style
% - copyrightspace reduced to 0.5in
% - borrows *heavily* from Daniel Kartch's 'siggraph' class.
% - also uses pieces of 'apalike.sty' and 'authordate1-4.cls'
% - version 0.1 2001/06/01 Stephen Spencer (spencer@acm.org)
% - version 0.2 2001/10/15 Stephen Spencer
% - the "\onlineid" variable works with the "review" mode, placing a
% banner across the top of each page "Online Submission ID 'onlineid'
% - version 0.3 2002/01/11 Stephen Spencer
% - disabled the cover page option.
% - version 0.4 2002/01/23 Stephen Spencer
% - based on suggestions from James O'Brien, the following changes:
% - correction if '\ifcamera' and '\ifcameraelse' commands
% - page numbering in both review and preprint modes
% have been made.
% ------------ identification --------------
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{vgtc}[2006/05/21 IEEE VGTC]
% ------------ initial code --------------
\newif\ifvgtc@camera
\newif\ifvgtc@preprint
\newif\ifvgtc@review
\newif\ifvgtc@doublespaced
\newif\ifvgtc@wide \vgtc@widefalse
\newif\ifhavecopyrightspace \havecopyrightspacetrue
\newif\ifvgtcjournal \vgtcjournalfalse
\newif\iftvcgsize \tvcgsizefalse
\newcommand{\vgtc@columnmode}{}
\newcommand{\vgtc@pointsize}{}
\RequirePackage{ifpdf}%
%% These few lines make a distinction between latex and pdflatex calls and they
%% bring in essential packages for graphics and font handling.
\ifpdf% % if we use pdflatex
\pdfoutput=1\relax % create PDFs from pdfLaTeX
\pdfcompresslevel=9 % PDF Compression
\pdfoptionpdfminorversion=7 % create PDF 1.7
\ExecuteOptions{pdftex}
\RequirePackage{graphicx} % allow us to embed graphics files
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.jpeg} % for pdflatex we expect .pdf, .png, or .jpg files
\else% % else we use pure latex
\ExecuteOptions{dvips}
\RequirePackage{graphicx} % allow us to embed graphics files
\DeclareGraphicsExtensions{.eps} % for pure latex we expect eps files
\fi%
% ------------ declaration of options --------------
% 'cameraready' option.
\DeclareOption{cameraready}{%
\vgtc@cameratrue%
\vgtc@preprintfalse%
\vgtc@reviewfalse%
\renewcommand{\vgtc@columnmode}{twocolumn}%
\vgtc@doublespacedfalse%
\renewcommand{\vgtc@pointsize}{9pt}}
% 'review' option.
\DeclareOption{review}{%
\vgtc@camerafalse%
\vgtc@preprintfalse%
\vgtc@reviewtrue%
\renewcommand{\vgtc@columnmode}{twocolumn}%
\vgtc@doublespacedfalse%
\renewcommand{\vgtc@pointsize}{9pt}
\havecopyrightspacefalse}
% 'widereview' option.
\DeclareOption{widereview}{%
\vgtc@camerafalse%
\vgtc@preprintfalse%
\vgtc@reviewtrue%
\renewcommand{\vgtc@columnmode}{onecolumn}%
\vgtc@widetrue%
\vgtc@doublespacedtrue%
\renewcommand{\vgtc@pointsize}{12pt}}
% 'preprint' option.
\DeclareOption{preprint}{%
\vgtc@camerafalse%
\vgtc@preprinttrue%
\vgtc@reviewfalse%
\renewcommand{\vgtc@columnmode}{twocolumn}%
\vgtc@doublespacedfalse%
\renewcommand{\vgtc@pointsize}{9pt}}
\DeclareOption{tvcgpapersize}
{\setlength\paperheight {10.75in}%
\setlength\paperwidth {7.875in}
\tvcgsizetrue
}
% 'journal' option
\DeclareOption{journal}{%
\vgtcjournaltrue %
\@twosidetrue \@mparswitchtrue %
%\ExecuteOptions{tvcgpapersize}
}
%%% the following code has partly been adapted from egpubl.cls
%\newif\ifpdf % determine if we are running PDFLaTeX or not
%\ifx\pdfoutput\undefined \pdffalse % we are not running PDFLaTeX
%\else
% %\pdfoutput=1 % we are running PDFLaTeX
% \pdftrue
%\fi
\newcommand{\vgtcinsertpkg}{}
\DeclareOption{electronic}{%
\renewcommand{\vgtcinsertpkg}{%
\RequirePackage[pagebackref,bookmarks]{hyperref}
\RequirePackage[all]{hypcap}% makes hyperlinks go to top of floats rather than the caption
\RequirePackage[svgnames]{xcolor}
\hypersetup{
pdfpagemode=UseNone,
pdftitle={\@title},
pdfauthor={\@author},
pdfsubject={VGTC Conference Paper},
pdfkeywords={\vgtc@keywords},
pageanchor=true,
plainpages=false, % for problems with page referencing
hypertexnames=false, % for handling subfigures correctly
bookmarksnumbered=false,% include the section numbers in the list
bookmarksopen=true, % In the list, display highest level only
bookmarksopenlevel=3, % display three levels of bookmarks
pdfpagemode=UseNone, % show just the page
pdfstartview=Fit, % defail page view is the whole page at once
pdfborder={0 0 0}, % we don't want those silly boxes for links
breaklinks=true, % allow breaking links
colorlinks=true, % color all links blue
linkcolor=NavyBlue,
urlcolor=NavyBlue,
citecolor=NavyBlue,
anchorcolor=black, % changing this colors te teaser caption using dvips
nesting=true,
linktocpage,
pdfdisplaydoctitle}
\ifpdf% % if we use pdflatex
\else% % else we use pure latex
\renewcommand{\pdfbookmark}[3][]{}
\fi
%% it is recommended to use ``\cref{sec:bla}`` instead of ``Sec.~\ref{sec:bla}''
%% the following lines load cleveref for consistent, style-dependent cross-references
%% then customize how sections and tables are referenced. Note that both ``\crefname``
%% AND ``\Crefname`` must be specified for each, otherwise cleveref uses whatever is
%% given for both cases.
\RequirePackage[nameinlink,capitalise]{cleveref}
\crefname{table}{Tab.}{Tabs.}
\Crefname{table}{Table}{Tables}
\crefname{section}{Sec.}{Secs.}
\Crefname{section}{Section}{Sections}
}
}
%% end of code adapted from egpubl.cls
% Assume, for the moment, that we're preparing a 'cameraready' version.
\ExecuteOptions{electronic,cameraready}
%\AtBeginDocument{\vgtcinsertpkg}
% Here's a warning command for use just below.
\newcommand{\vgtc@optwarning}[1]{%
\ifvgtc@camera
\ClassWarningNoLine{vgtc}%
{#1 option used in camera-ready mode.\MessageBreak
This violates submission specifications}
\fi
}
% The 'onecolumn' option doesn't work in 'cameraready' mode.
\DeclareOption{onecolumn}{%
\vgtc@optwarning{onecolumn}
\renewcommand{\vgtc@columnmode}{onecolumn}}
% The 'twocolumn' option works in 'cameraready' mode.
\DeclareOption{twocolumn}{%
\renewcommand{\vgtc@columnmode}{twocolumn}}
% Only the '9pt' size works in 'cameraready' mode.
\DeclareOption{9pt}{%
\renewcommand{\vgtc@pointsize}{9pt}}
\DeclareOption{10pt}{%
\vgtc@optwarning{10pt}
\renewcommand{\vgtc@pointsize}{10pt}}
\DeclareOption{11pt}{%
\vgtc@optwarning{11pt}
\renewcommand{\vgtc@pointsize}{11pt}}
\DeclareOption{12pt}{%
\vgtc@optwarning{12pt}
\renewcommand{\vgtc@pointsize}{12pt}}
% The 'singlespace' option works in 'cameraready' mode.
\DeclareOption{singlespace}{%
\vgtc@doublespacedfalse}
% The 'doublespace' option does not work in 'cameraready' mode.
\DeclareOption{doublespace}{%
\vgtc@optwarning{doublespace}
\vgtc@doublespacedtrue}
% No 'titlepage' option in 'cameraready' mode.
\DeclareOption{titlepage}{%
\OptionNotUsed%
\ClassWarningNoLine{vgtc}{titlepage option not allowed}}
% No 'landscape' mode in 'cameraready' mode, either.
\DeclareOption{landscape}{%
\OptionNotUsed%
\ClassWarningNoLine{vgtc}{landscape option not allowed}}
% Pass everything else to the 'article' class, upon which this is based.
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions
\PassOptionsToClass{\vgtc@columnmode}{article}
\ifvgtcjournal
\PassOptionsToClass{twoside}{article}
\fi
\ifdim\vgtc@pointsize>9pt
\PassOptionsToClass{\vgtc@pointsize}{article}
\fi
% ------------ package loading --------------
\LoadClass{article}
% ------------ main code --------------
\newcommand{\vgtc@onlineid}{}
\newcommand{\onlineid}[1]{\renewcommand{\vgtc@onlineid}{#1}}
%\newcommand{\vgtc@preprinttext}{To appear in IEEE Transactions on Visualization and Computer Graphics}
%\newcommand{\preprinttext}[1]{\renewcommand{\vgtc@preprinttext}{#1}}
\newcommand{\vgtc@DOI}{xx.xxxx/TVCG.201x.xxxxxxx/}
\newcommand{\vgtc@preprinttext}{\parbox{0.9\textwidth}{$\copyright$ \the\year~IEEE. This is the author's version of the article that has been published in the proceedings of IEEE Visualization conference. The final version of this record is available at: \href{https://doi.org/\vgtc@DOI}{\color{blue}\vgtc@DOI}}}
\newcommand{\preprinttext}[1]{\renewcommand{\vgtc@preprinttext}{#1}}
\newcommand{\ieeedoi}[1]{\renewcommand{\vgtc@DOI}{#1}}
\newcommand{\vgtc@reviewtext}{Online Submission ID: \vgtc@onlineid}
\newcommand{\reviewtext}[1]{\renewcommand{\vgtc@reviewtext}{#1}}
\newcommand{\shortauthortitletext}{}
\newcommand{\shortauthortitle}[1]{\renewcommand{\shortauthortitletext}{#1}}
%\newcommand{\journalidtxt}{IEEE TRANSACTIONS ON VISUALIZATION AND
%COMPUTER GRAPHICS, VOL. 12, NO. 5, SEPTEMBER/OCTOBER 2006}
%\newcommand{\journalid}[1]{\renewcommand{\journalidtxt}{#1}}
%%Comment from here
\newcommand{\manuscriptnotetxt}{
Manuscript received xx xxx. 201x; accepted xx xxx. 201x. Date of Publication xx xxx. 201x; date of current version xx xxx. 201x. For information on obtaining reprints of this article, please send e-mail to: reprints@ieee.org. Digital Object Identifier: xx.xxxx/TVCG.201x.xxxxxxx
}
%% to here to not use the blank
%% NOTE FOR BLANK SPACING
%% uncomment from here
%\newcommand{\manuscriptnotetxt}{\vspace{.25in}}
%% to here
\newcommand{\manuscriptnote}[1]{\renewcommand{\manuscriptnotetxt}{#1}}
\newcommand{\copyrighttext}{}
%%\newcommand{\copyrighttext}{1077-2626/12/\$31.00 \copyright 2014 IEEE%
%%\hskip0.5in Published by the IEEE Computer Society}
\newcommand{\authorfootertext}{}
\newcommand{\authorfooter}[1]{\renewcommand{\authorfootertext}{{\em#1}}}
\newcommand{\firstsectiontxt}{}
\newcommand{\firstsection}[1]{\renewcommand{\firstsectiontxt}{#1}}
\newcommand{\acknowledgments}[1]{%
\ifvgtc@review\else%
\section*{Acknowledgments}
#1
\fi}
\newcommand{\ifcamera}[1]{\ifvgtc@camera #1 \fi}
\newcommand{\ifreview}[1]{\ifvgtc@review #1 \fi}
\newcommand{\ifcameraelse}[2]{\ifvgtc@camera #1 \else #2 \fi}
\newcommand{\ifreviewelse}[2]{\ifvgtc@review #1 \else #2 \fi}
\ifvgtcjournal
\renewcommand{\figurename}{Fig.}
\setlength{\textheight}{9.625in}
\setlength{\topmargin}{-0.625in}
\setlength{\headheight}{0.0625in}
\setlength{\headsep}{0.250in}
\setlength{\footskip}{0.25in}
\flushbottom
\setlength{\textwidth}{7.125in}
\setlength{\columnsep}{0.17in}
\newlength{\captionmargin}
\setlength{\captionmargin}{0in}
\iftvcgsize
\setlength\paperheight {10.75in}
\setlength\paperwidth {7.875in}
\setlength{\evensidemargin}{-0.6875in} %1in-0.3125
\setlength{\oddsidemargin}{-.58in} %1in-0.4375
\else %else assume letter
\setlength\paperheight {11in}
\setlength\paperwidth {8.5in}
\setlength{\evensidemargin}{-0.375in} %1-(0.3125+0.3125)
\setlength{\oddsidemargin}{-.25in} %1-(0.4375+0.3125)
\fi
\else
% conference template margins
\setlength{\textheight}{9.25in}
\setlength{\topmargin}{-0.700in}
\setlength{\headheight}{0.2in}
\setlength{\headsep}{0.250in}
\setlength{\footskip}{0.5in}
\flushbottom
\setlength{\textwidth}{7in}
\setlength{\oddsidemargin}{-0.25in}
\setlength{\evensidemargin}{-0.25in}
\setlength{\columnsep}{2pc}
%%\setlength{\parindent}{1em}
\newlength{\captionmargin}
\setlength{\captionmargin}{0in}
\fi
% adjust marginpars so that they can be used for comments during editing
\ifvgtcjournal % for journal style
\addtolength{\marginparwidth}{-1.5mm} % fix margin
\else % conference style
\addtolength{\marginparwidth}{16mm}
\fi
\addtolength{\marginparsep}{-2mm} % fix margin
\renewcommand{\ps@plain}%
{%
\renewcommand{\@oddhead}{}%
\renewcommand{\@oddfoot}{}%
\ifvgtc@preprint%
\renewcommand{\@oddhead}{\hfil\textit{\vgtc@preprinttext}\hfil}%
\renewcommand{\@oddfoot}{\hfil\textrm{\thepage}\hfil}%
\fi%
\ifvgtc@review%
\renewcommand{\@oddhead}{\hfil\textit{\large\vgtc@reviewtext}\hfil}%
\renewcommand{\@oddfoot}{\hfil\textrm{\thepage}\hfil}%
\fi%
\ifvgtcjournal%
\ifvgtc@review\else\ifvgtc@preprint\else%
% \renewcommand{\@evenhead}{\hfil\sffamily\small\MakeUppercase{\journalidtxt}}%
% \renewcommand{\@oddhead}{\sffamily\small\MakeUppercase{\shortauthortitletext}\hfil}%
\renewcommand{\@oddfoot}{}% no page number
\renewcommand{\@evenfoot}{\@oddfoot}%
\fi\fi%
\else%
\renewcommand{\@evenhead}{\@oddhead}%
\renewcommand{\@evenfoot}{\@oddfoot}%
\fi%
}
% will be used on the first page
\renewcommand{\ps@empty}%
{%
\renewcommand{\@oddhead}{}%
\renewcommand{\@oddfoot}{}%
\ifvgtc@preprint%
\renewcommand{\@oddhead}{\hfil\textit{\large\vgtc@preprinttext}\hfil}%
\renewcommand{\@oddfoot}{\hfil\textrm{\thepage}\hfil}%
\fi%
\ifvgtc@review%
\renewcommand{\@oddhead}{\hfil\textit{\large\vgtc@reviewtext}\hfil}%
\renewcommand{\@oddfoot}{\hfil\textrm{\thepage}\hfil}%
\fi%
\ifvgtcjournal%
\ifvgtc@review\else\ifvgtc@preprint\else%
% \renewcommand{\@oddhead}{\sffamily\small\MakeUppercase{\journalidtxt}\hfil}%
\renewcommand{\@oddfoot}{\hfil{\small\sffamily\copyrighttext}\hfil}%
\fi\fi%
\fi%
\renewcommand{\@evenhead}{\@oddhead}%
\renewcommand{\@evenfoot}{\@oddfoot}%
}
% no page numbers - they are added in production
\pagestyle{plain}
\newcommand{\vgtc@setninepoint}{
\renewcommand\normalsize{%
\@setfontsize\normalsize\@ixpt\@xpt
\abovedisplayskip 9\p@ \@plus2\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus3\p@
\belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@
\belowdisplayskip \abovedisplayskip
\let\@listi\@listI}
\renewcommand\small{%
\@setfontsize\small\@viipt\@ixpt
\abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus2\p@
\belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\topsep 4\p@ \@plus2\p@ \@minus2\p@
\parsep 2\p@ \@plus\p@ \@minus\p@
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip}
\renewcommand\footnotesize{%
\@setfontsize\footnotesize\@viiipt{9.5}%
\abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@
\abovedisplayshortskip \z@ \@plus\p@
\belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@
\def\@listi{\leftmargin\leftmargini
\topsep 3\p@ \@plus\p@ \@minus\p@
\parsep 2\p@ \@plus\p@ \@minus\p@
\itemsep \parsep}%
\belowdisplayskip \abovedisplayskip}
\renewcommand\scriptsize{\@setfontsize\scriptsize\@viiipt{9.5}}
\renewcommand\tiny{\@setfontsize\tiny\@vpt\@vipt}
\renewcommand\large{\@setfontsize\large\@xpt\@xiipt}
\renewcommand\Large{\@setfontsize\Large\@xiipt{14}}
\renewcommand\LARGE{\@setfontsize\LARGE\@xivpt{18}}
\renewcommand\huge{\@setfontsize\huge\@xviipt{22}}
\renewcommand\Huge{\@setfontsize\Huge\@xxpt{25}}
\selectfont
}
\ifdim\vgtc@pointsize=9pt
\vgtc@setninepoint
\fi
\newcommand{\vgtc@sectionfont}{}
\newcommand{\sectionfont}[1]{\renewcommand{\vgtc@sectionfont}{#1}}
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-2ex \@plus -1ex \@minus -.2ex}%
{0.8ex \@plus .2ex}%
{\reset@font\normalsize\sffamily\bfseries\scshape\vgtc@sectionfont}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-1.8ex\@plus -1ex \@minus -.2ex}%
{0.8ex \@plus .2ex}%
{\reset@font\normalsize\sffamily\bfseries\vgtc@sectionfont}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-1.8ex\@plus -1ex \@minus -.2ex}%
{0.8ex \@plus .2ex}%
{\reset@font\sffamily\normalsize\vgtc@sectionfont}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{1em}%
{1ex \@plus 1ex \@minus.2ex}%
{-1em}%
{\reset@font\normalsize\sffamily\vgtc@sectionfont}}
%\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
% {3.25ex \@plus1ex \@minus.2ex}%
% {-1em}%
% {\reset@font\normalsize\sffamily\bfseries\vgtc@sectionfont}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\reset@font\normalsize\sffamily\bfseries\vgtc@sectionfont}}
\ifvgtc@wide\else
%% make captionfont 8pt
\newcommand{\captionfonts}{\scriptsize\sffamily}
\def\instring#1#2{TT\fi\begingroup
\edef\x{\endgroup\noexpand\in@{#1}{#2}}\x\ifin@}
\long\def\@makecaption#1#2{%
\if\instring{Table}{#1}\else\vskip\abovecaptionskip\fi
\leftskip = \captionmargin \rightskip = \leftskip%
\sbox\@tempboxa{\captionfonts #1\ifvgtcjournal. \else: \fi #2}%
\ifdim \wd\@tempboxa >\hsize
{\captionfonts #1\ifvgtcjournal. \else: \fi #2\par}
\else %single line caption
\global \@minipagefalse
\def\@figcaptype{figure}
\hskip0.0in%needed to make leftskip work
\hb@xt@\hsize{\ifvgtcjournal\ifx\@captype\@figcaptype\else\hfil\fi\else\hfil\fi\box\@tempboxa\hfil}%
\fi
\if\instring{Table}{#1}\vskip.5\abovecaptionskip\else\vskip\belowcaptionskip\fi}
%% fix the font size of the bibliography to 8pt
\newdimen\bibindent
\newdimen\bibspacing
\setlength\bibindent{1em}
\setlength{\bibspacing}{\z@}
\renewenvironment{thebibliography}[1]
{\section*{\refname}%
\scriptsize%
\@mkboth{\MakeUppercase\refname}{\MakeUppercase\refname}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\itemsep\bibspacing % should this be commented out?
\parsep\bibspacing % should this be commented out?
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\fi
\newcommand{\vgtc@empty}{}
\newcommand{\vgtc@affiliation}{}
\newcommand{\affiliation}[1]{\renewcommand{\vgtc@affiliation}{#1}}
\newcommand{\vgtc@category}{}
\newcommand{\category}[1]{\renewcommand{\vgtc@category}{#1}}
\newcommand{\vgtccategory}[1]{\category{#1}}
\vgtccategory{n/a}
\newcommand{\vgtc@papertype}{}
\newcommand{\papertype}[1]{\renewcommand{\vgtc@papertype}{#1}}
\newcommand{\vgtcpapertype}[1]{\papertype{#1}}
%\newcommand{\vgtc@format}{}
%\newcommand{\format}[1]{\renewcommand{\vgtc@format}{#1}}
%\newcommand{\vgtcformat}[1]{\format{#1}}
\newcommand{\vgtcformat}[1]
{\@latex@warning{Format specification no longer required.}}
\RequirePackage{etoolbox}
\newcommand{\vgtc@teaser}{}
\newcommand{\teaser}[1]{%
\renewcommand{\vgtc@teaser}{%
%\setlength{\captionmargin}{0.33in}% TI: no longer needed since the entire teaser is now limited to the width of the abstract
\newlength{\abstractwidth}%
\setlength{\abstractwidth}{\linewidth}%
\addtolength{\abstractwidth}{-.66in}%
\begin{minipage}{\abstractwidth}
#1%
\end{minipage}
\setlength{\captionmargin}{0in}%
}%
}
\newcommand{\vgtc@abstxt}{}
\let\origabstract\abstract
\let\endorigabstract\endabstract
\renewcommand{\abstract}[1]{\renewcommand{\vgtc@abstxt}{#1}}
\newcommand{\vgtc@keywords}{}
\newcommand{\keywords}[1]{\renewcommand{\vgtc@keywords}{#1}}
\newcommand{\vgtc@indexterms}{}
\newcommand{\CCScatlist}[1]{\renewcommand{\vgtc@indexterms}{#1}}
\newcommand{\CCScat}[4]{%
#1 [#2]%
\ifx#3\vgtc@empty \else : #3\fi%
\ifx#4\vgtc@empty \else ---#4\fi%
}
\newcommand{\CCScatTwelve}[4]{%
#1%
\ifx#2\vgtc@empty \else ---#2\fi%%
\ifx#3\vgtc@empty \else ---#3\fi%
\ifx#4\vgtc@empty \else ---#4\fi%
}
% use any of the following to adjust spaces in title block
\newlength{\titlespace}
\setlength{\titlespace}{0.25in}
\newlength{\teaserspace}
\setlength{\teaserspace}{0.0in}
\newlength{\abstxtspace}
\setlength{\abstxtspace}{0.20in}
\renewcommand{\@maketitle}{%
\ifvgtc@review
\begin{center}%
\renewcommand{\thanks}[1]{}
{\sffamily\ifvgtcjournal\huge\else\LARGE\bfseries\fi%
\vgtc@sectionfont%
\@title \par}%
\vspace{1\baselineskip}%
{Category: \vgtc@category \par}%
\ifx\vgtc@papertype\vgtc@empty \else%
{\vspace{1ex}Paper Type: \vgtc@papertype \par}%
\fi%
% \vspace{0.25\baselineskip}% % no longer needed (1996)
% {Format: \vgtc@format \par}% % no longer needed (1996)
\vspace{\titlespace}%
\ifx\vgtc@teaser\vgtc@empty \else%
\begingroup%
\def\@captype{figure}%
\vgtc@teaser%
\endgroup\par%
\vspace{\teaserspace}%
\fi%
\end{center} \par%
\else
\begin{center}%
{\sffamily\ifvgtcjournal\huge\else\LARGE\bfseries\fi%
\vgtc@sectionfont%
\@title \par}%
\ifvgtcjournal%
%\vspace{2\baselineskip}%
\vspace{14pt}%
\else%
\vspace{1\baselineskip}\fi%
\large\sffamily\vgtc@sectionfont
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par%
\ifx\vgtc@affiliation\vgtc@empty \else%
\par\vspace{1\baselineskip}%
\vgtc@affiliation\par%
\fi%
\ifvgtcjournal\vspace{0.08in}\else\vspace{\titlespace}\fi%
\ifx\vgtc@teaser\vgtc@empty \else%
{
\begingroup%
\def\@captype{figure}%
\vgtc@teaser%
\endgroup\par%
}
\vspace{\teaserspace}%
\fi%
\end{center} \par%
\fi
\ifvgtcjournal%
{\scriptsize\sffamily%\renewcommand{\baselinestretch}{1.1}
\leftskip = 0.33in \rightskip = \leftskip%
\ifx\vgtc@abstxt\vgtc@empty \else%
\begingroup%
{\bfseries Abstract}---\vgtc@abstxt%
\endgroup\par%
\fi%
\ifx\vgtc@keywords\vgtc@empty \else%
\begingroup%
%{\normalsize\vgtc@absfont {\bfseries Keywords - } \vgtc@keywords}%
\vspace{0.5\baselineskip}%
\par\noindent \textbf{Index Terms}---\vgtc@keywords%
\endgroup\par%
\fi%
%% \ifx\vgtc@indexterms\vgtc@empty \else%
%% \begingroup%
%% % {\normalsize\vgtc@absfont {\bfseries Index Terms - } %
%% % \vgtc@indexterms}%
%% \vspace{0.5\baselineskip}%
%% \par\noindent \textbf{Index Terms -} \vgtc@indexterms%
%% \endgroup\par%
%% \fi%
}%
\begin{center}\includegraphics{diamondrule}\end{center}
%\vspace{\abstxtspace}%
\ifx\firstsectiontxt\vgtc@empty \else
\section{\firstsectiontxt}
\fi
\fi%
}
\let\vgtc@origmaketitle\maketitle
\let\vgtc@origand\and
\renewcommand{\maketitle}{%
\let\vgtc@title\@title%
\let\vgtc@author\@author%
\vgtc@origmaketitle%
\thispagestyle{empty}%
\ifvgtc@doublespaced%
\renewcommand{\baselinestretch}{1.66}\selectfont%
\fi%
\ifvgtcjournal% no copyrightspace for journal, but authorfooter
\ifvgtc@review\else
\renewcommand{\thefootnote}{}%
\footnotetext[0]{
\begin{flushleft}
\vskip -6pt
\begin{list}{\textbullet}{
\setlength{\partopsep}{0pt}
\setlength{\topsep}{0pt}
\setlength{\itemsep}{-2pt}
\setlength{\itemindent}{-4pt}
\setlength{\leftmargin}{12pt}}
\authorfootertext
\end{list}
\vskip 4pt
\ifvgtc@preprint\else\textit{\manuscriptnotetxt}\fi
\end{flushleft}
}%
\renewcommand{\thefootnote}{\arabic{footnote}}
\fi
\else%
\ifhavecopyrightspace\copyrightspace\fi%
\ifx\vgtc@abstxt\vgtc@empty \else%
\begingroup%
\begin{origabstract} \vgtc@abstxt \end{origabstract} %
\endgroup\par%
%\vspace{\abstxtspace}%
\fi%
\ifx\vgtc@keywords\vgtc@empty \else%
\begingroup%
\vspace{0.5\baselineskip}%
\par\noindent \textbf{Index Terms: } \vgtc@keywords%
\endgroup\par%
%\vspace{\abstxtspace}%
\fi%
\ifx\vgtc@indexterms\vgtc@empty \else%
\begingroup%
% {\normalsize\vgtc@absfont {\bfseries Index Terms - } %
% \vgtc@indexterms}%
\vspace{0.5\baselineskip}%
\par\noindent \textbf{Index Terms:} \vgtc@indexterms%
\endgroup\par%
%\vspace{\abstxtspace}%
\fi%
\fi%
\ifx\firstsectiontxt\vgtc@empty \else
\ifvgtcjournal
\section*{}
\vskip -1.5em
\else
\section{\firstsectiontxt}
\fi
\fi
}
%% \newtoks\vgtc@abs
%% \ifvgtc@review
%% \long\def\vgtc@add#1{\global\vgtc@abs\expandafter{\the\vgtc@abs#1}}
%% \long\def\vgtc@collect{%
%% \global\vgtc@abs{}%
%% \let\abstract\vgtc@@collect
%% \abstract
%% }
%% \long\def\vgtc@@collect#1\end#2{%
%% \def\@tempa{#2}%
%% \ifx\@tempa\@currenvir
%% \vgtc@add{#1}%
%% \edef\abstract{\noexpand\end{\@tempa}}%
%% \else
%% \vgtc@add{#1\end{#2}}%
%% \fi
%% \abstract
%% }
%% \newcommand{\vgtc@modify}{%
%% \let\vgtc@origabs\abstract%
%% \let\vgtc@origendabs\endabstract%
%% \renewenvironment{abstract}%
%% {\vgtc@collect}%
%% {\begingroup
%% \let\abstract\vgtc@origabs
%% \let\endabstract\vgtc@origendabs
%% \begin{abstract} \the\vgtc@abs \end{abstract}
%% \endgroup}%
%% }
%% \AtBeginDocument{\vgtc@modify}
%% \fi
\newcommand{\keywordsprefix}{%
\vspace{0.5\baselineskip}%q
\par\noindent \textbf{Index Terms - } \vgtc@keywords%
}
\newenvironment{CRcatlistprefix}{%
\vspace{0.5\baselineskip}%
\par\noindent \textbf{CR Categories: }%
}{}
% leave a 0.5 inch space at the bottom of the left column
% on the first page for the copyright block.
\newlength{\vgtc@copyrightlength}
\setlength{\vgtc@copyrightlength}{0.5in}
\newcommand{\copyrightspace}{%
\renewcommand{\thefootnote}{}%
\footnotetext[0]{\rule[\vgtc@copyrightlength]{2.71828in}{0in}}%
\renewcommand{\thefootnote}{\arabic{footnote}}
}
\newcommand{\nocopyrightspace}{\havecopyrightspacefalse}
\renewcommand{\footnoterule}{%
\kern-3pt
\leftline{\hskip1in\vbox{\hrule width 0.45\columnwidth}\hfil}
\ifvgtcjournal \else \kern 2.6pt \fi
}
\newcommand{\vgtc@contactname}{}
\newcommand{\contactname}[1]{\renewcommand{\vgtc@contactname}{#1}}
\newcommand{\vgtc@contactaddress}{}
\newcommand{\contactaddress}[1]{\renewcommand{\vgtc@contactaddress}{#1}}
\newcommand{\vgtc@contactphone}{}
\newcommand{\contactphone}[1]{\renewcommand{\vgtc@contactphone}{#1}}
\newcommand{\vgtc@contactfax}{}
\newcommand{\contactfax}[1]{\renewcommand{\vgtc@contactfax}{#1}}
\newcommand{\vgtc@contactemail}{}
\newcommand{\contactemail}[1]{\renewcommand{\vgtc@contactemail}{#1}}
\newcommand{\vgtc@estpages}{}
\newcommand{\estpages}[1]{\renewcommand{\vgtc@estpages}{#1}}
\newif\ifvgtc@cover
\vgtc@coverfalse
%\ifvgtc@review
% \vgtc@covertrue
%\else
% \vgtc@coverfalse
%\fi
\newcommand{\suppresscover}{\vgtc@coverfalse}
\newcommand{\vgtc@coverpage}{%
\begin{titlepage}%
\def\thanks##1{}
\let\and\vgtc@origand
\vgtc@setninepoint\normalsize
\renewcommand{\baselinestretch}{1}\selectfont
\begin{center}%
\vspace*{\fill}
{\LARGE\sffamily\bfseries\vgtc@sectionfont \vgtc@title \par}%
\vspace{2\baselineskip}%
{\large
\begin{tabular}[t]{c}%
\vgtc@author
\end{tabular}\par%
}%
\vspace{1\baselineskip}%
{\large \vgtc@affiliation \par}%
\addvspace{3\baselineskip}%
{Category: \vgtc@category \par}%
% \vspace{0.5\baselineskip}% % no longer needed (1996)
% {Format: \vgtc@format \par}% % no longer needed (1996)
\vspace{3\baselineskip}%
\begin{tabular}{ll}
Contact: & \vgtc@contactname \\[1\baselineskip]
& \begin{tabular}[b]{@{}l@{}}
\vgtc@contactaddress
\end{tabular} \\[1\baselineskip]
phone: & \vgtc@contactphone \\
fax: & \vgtc@contactfax \\
email: & \vgtc@contactemail
\end{tabular}\par%
\vspace*{3\baselineskip}%
{Estimated \# of pages: \vgtc@estpages \par}%
\vspace*{\baselineskip}%
{Index Terms: \vgtc@keywords \par}%
\vspace*{\fill}%
\begin{minipage}{5in}%
\the\vgtc@abs
\end{minipage}\par%
\vspace*{\fill}
\end{center}%
\end{titlepage}%
}
\AtEndDocument{\ifvgtc@cover \vgtc@coverpage \fi}
\newcommand{\vgtcopening}[1]{%
\ClassError{vgtc}{%
The vgtcopening command is no longer needed.\MessageBreak%
Switch to the maketitle command and abstract environment}{}}
\InputIfFileExists{vgtc.cfg}
{\typeout{***************************************^^J%
* Local config file vgtc.cfg used *^^J%
***************************************}}
{}
\endinput
% End of file 'vgtc.cls'.