Skip to content

Instantly share code, notes, and snippets.

@jpgoldberg
Created May 19, 2021 21:08
Show Gist options
  • Save jpgoldberg/1b46c9d325abcf9c825629a223d42256 to your computer and use it in GitHub Desktop.
Save jpgoldberg/1b46c9d325abcf9c825629a223d42256 to your computer and use it in GitHub Desktop.
XeLaTeX friendly SOUPS 2021 sty
% (JPG) Modified Usenex-SOUPS style to use fontspec if running with XeLaTeX or LuaLaTeX
% (JPG) Comments annoted with "(JPG)" are by Jeffrey P Goldberg,
% (JPG) [email protected] (or [email protected])
% (JPG):
% The goal is to make this style sheet work with using a pdftex engine,
% (pdflatex) as well as XeTeX or LuaTeX (xelatex, lualatex)
% with similar output
%
% So far, I have noticed two visible difference
% 1. pdftex uses frenchspacing.
% 2. pdftex uses a fixed-width font that is unrelated to Times.
%
% As I don't believe that these were desired design choices of the orignal
% style (to be used with pdftex), I am not making the {Xe,Lua}TeX versions
% mimic that original behavior.
% (JPG) The immediately visible differences between using pdflatex en
\usepackage{iftex}
\newif\iffontspecavailable % default is false
\ifluatex
\fontspecavailabletrue
\fi
\ifxetex
\fontspecavailabletrue
\fi
% usenix.sty - to be used with latex2e for USENIX.
% To use this style file, look at the template usenix_template.tex
%
% $Id: usenix.sty,v 1.2 2005/02/16 22:30:47 maniatis Exp $
%
% The following definitions are modifications of standard article.sty
% definitions, arranged to do a better job of matching the USENIX
% guidelines.
% It will automatically select two-column mode and the Times-Roman
% font.
%
% 2018-12-19 [for ATC'19]: add packages to help embed all fonts in
% pdf; to improve appearance (hopefully); to make refs and citations
% clickable in pdf
%
% USENIX papers are two-column.
\if@twocolumn\else\input twocolumn.sty\fi
% Times-Roman font is nice if you can get it
% (JPG) \texttt uses very different fonts in the different cases
% (JPG) I am not going to tinker with the fontspec option to make
% (JPG) mimic the pdftex option, as the fixed width font used by
% (JPG) by textxtext is much more compatible with Times.
\iffontspecavailable
\usepackage{fontspec}
% (JPG) the following packages load Times-like clones that
% (JPG) should be part of any standard TeX installation.
% (JPG) If you have a true Times New Roman on your system
% (JPG) you load those instead, but those are system
% (JPG) dependent.
\usepackage{newtxtext} % Times-like text fonts
\usepackage{newtxmath} % Times-like math fonts
\else
% (JPG) It appears that mathptmx does not attempt to find a
% (JPG) Times compatable fixed-width (typewriter) font.
\usepackage{mathptmx} % times roman, including math (where possible)
% hopefully embeds all fonts in pdf
\usepackage[T1]{fontenc}
\usepackage{pslatex}
\fi
% Allow UTF input
\usepackage[utf8]{inputenc}
% appearance
\iffontspecavailable
% (JPG) We could try to mimic what was probabably _intended_ by the microtype
% (JPG) inclusion in the original by using fontspec's LetterSpacing features
% (JPG) and moving to frenchspacing. But it is too unclear what was
% (JPG) actually intended.
\usepackage{microtype}
\else
% (JPG) Loading microtype with these features doesn't do anything if
% (JPG) if additional commands introduced by the package aren't
% (JPG) used.
\usepackage[kerning,spacing]{microtype} % more compact and arguably nicer
\fi
\iffontspecavailable
% (JPG) breakurl is only needed for pdftex engines.
\else
\usepackage{breakurl} % break too-long urls in refs
\fi
\usepackage{flushend} % make cols in last page equal in size
% refs and bib
\usepackage{cite} % order multiple entries in \cite{...}
\usepackage{url} % allow \url in bibtex for clickable links
\usepackage{xcolor} % color definitions, to be use for...
\usepackage[pdfusetitle]{hyperref} % ...clickable refs within pdf...
\hypersetup{ % ...like so
colorlinks,
linkcolor={green!80!black},
citecolor={red!70!black},
urlcolor={blue!70!black},
}
% USENIX wants margins of: 0.75" sides, 1" bottom, and 1" top.
% 0.33" gutter between columns.
% Gives active areas of 7" x 9"
%
\setlength{\textheight}{9.0in}
\setlength{\columnsep}{0.33in}
\setlength{\textwidth}{7.00in}
\setlength{\topmargin}{0.0in}
\setlength{\headheight}{0.0in}
\setlength{\headsep}{0.0in}
\addtolength{\oddsidemargin}{-0.25in}
\addtolength{\evensidemargin}{-0.25in}
% Usenix wants no page numbers for camera-ready papers, so that they can
% number them themselves. But submitted papers should have page numbers
% for the reviewers' convenience.
%
%
% \pagestyle{empty}
%
% Usenix titles are in 14-point bold type, with no date, and with no
% change in the empty page headers. The whole author section is 12 point
% italic--- you must use {\rm } around the actual author names to get
% them in roman.
%
\def\maketitle{\par
\begingroup
\renewcommand\thefootnote{\fnsymbol{footnote}}%
\def\@makefnmark{\hbox to\z@{$\m@th^{\@thefnmark}$\hss}}%
\long\def\@makefntext##1{\parindent 1em\noindent
\hbox to1.8em{\hss$\m@th^{\@thefnmark}$}##1}%
\if@twocolumn
\twocolumn[\@maketitle]%
\else \newpage
\global\@topnum\z@
\@maketitle \fi\@thanks
\endgroup
\setcounter{footnote}{0}%
\let\maketitle\relax
\let\@maketitle\relax
\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\thanks\relax
}
\def\@maketitle{\newpage
\vbox to 2.5in{
\vspace*{\fill}
\vskip 2em
\begin{center}%
{\Large\bf \@title \par}%
\vskip 0.375in minus 0.300in
{\large\it
\lineskip .5em
\begin{tabular}[t]{c}\@author
\end{tabular}\par}%
\end{center}%
\par
\vspace*{\fill}
\hypersetup{
pdfauthor = {\plainauthor}} %MLM: Put "plainauthor" into pdf metadata
% \vskip 1.5em
}
}
%
% The abstract is preceded by a 12-pt bold centered heading
\def\abstract{\begin{center}%
{\large\bf \abstractname\vspace{-.5em}\vspace{\z@}}%
\end{center}}
\def\endabstract{}
%
% Main section titles are 12-pt bold. Others can be same or smaller.
%
\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus-1ex minus
-.2ex}{2.3ex plus.2ex}{\reset@font\large\bf}}
% set up for copyright box (adapted from ACM template used in SOUPS 2018)
% create a float for the copyright box
\usepackage{float}
\newfloat{soupscopyright}{b} %A new float type so it doesn't count against figures
\def\thecopyright{
\begin{soupscopyright}[b] %declare a float of the type
\begin{center}
\setlength{\unitlength}{1pc}
\begin{picture}(20,6) %Space for copyright notice
% \put (0,-0.95){TEST}
\put(0,-0.95){ %"Put" adds text to the "picture"
\parbox[b]{20pc}{\baselineskip 9pt %parbox lets you have newlines and such
\footnotesize{Copyright is held by the author/owner. Permission
to make digital or hard copies of all or part of this work for
personal or classroom use is granted without fee.\par
\emph{USENIX Symposium on Usable Privacy and Security
(SOUPS)} 2021. \\ August~8--10,~2021, Vancouver,~B.C.,~Canada.}
}}
\end{picture}
\end{center}
\end{soupscopyright}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment