Communications in Computational Chemistry (cicc)
Global Science Press's cicc class for Communications in Computational Chemistry, a two-column article layout with journal header, dates block, abstract and keywords, with a sample paper showing figures, tables, equations and BibTeX references with the journal's cicc.bst style.
- Category
- Journal
- Document class
cicc(cicc.cls) — ships with TeX Live- Workflow
- Journal manuscript — submissions and revision rounds
- Author
- Global Science Press
- Source
- Global Science Press
- Licence
- No licence is stated in the files. Global Science Press distributes them for authors preparing a submission.
These are the publisher’s own files. This project starts from Global Science Press’s package for this publication — their manuscript, their cicc.cls, their bibliography style — so what compiles here is what they would have given you.
Global Science Press serves this exact file to Communications in Computational Chemistry. Check Global Science Press’s author pages for the current instructions.
Where this differs from the publisher’s download.
- Note: The same class serves Communications articles; the journal also offers a separate Communications sample (CICC-Communications-template-latex.zip, author-template-file/73) that differs only in the article type and sample text.
What you get
CiCC_template.tex— the file that is compiled · 12 KBFigure_1.jpg· 137 KBcicc.bst· 21 KBcicc.cls· 9 KBref.bib· 3 KB
These become your files. Editing them afterwards changes your project and nothing else — a project owns its files from the moment it is made.
Journals using this template
Source
CiCC_template.tex — the file that is compiled · 12 KB
\documentclass{cicc}
\firstpage{1}
\articletype{Regular / Feature / Perspective / Review Article}
\doi{doi: 10.4208/cicc.2026.xxx.xx}
\publishedyear{2026}
\volume{1}
\issue{1}
%\pagenumbers{1-2}
\receiveddate{20 Oct. 2026}
\revisiondate{25 Oct. 2026}
\accepteddate{25 Dec. 2026}
\onlinedate{28 Dec. 2026}
\publisheddate{30 Dec. 2026}
\title[Here is the Title]
{Your paper}
\author[1,2]{John Doe}
\author[1,2,*]{Jane Smith}
\affil[1]{\textit{Department of Chemistry, Faculty of Arts and Sciences, Beijing Normal University, Zhuhai 519087, China} }
\affil[2]{\textit{College of Chemistry, Beijing Normal University, Beijing 100875, China}
\protect\vspace{1em}}
\affil[*]{Corresponding authors: xxxxx@xxx}
\let\leqslant=\leq
\newtheorem{theorem}{Theorem}[section]
\begin{document}
\twocolumn[{
\vspace*{0.5em}
\maketitle
\thispagestyle{firstpage}
\label{firstpage}
\begin{abstract}
The abstract should be a single paragraph that summarises the content of the article.
\keywords{keyword1, keyword2, keyword3, keyword4.}
\end{abstract}
}] % End of twocolumn header block
\section{Introduction}
The introduction section should appear here\cite{berger1989local,tan_simple_moving,mckechnie2017arxiv,boor1973good,tullius1996comprehensive,authors_year_dataset,sheldrick1996shelxs,tullius1991title}.
\section{Theoretical and computational details}
The theoretical and computational methods or details should appear here.
\subsection{Methods}
The time-dependent Schr\"odinger equation is:
\begin{equation} \label{eq:tdse}
i\hbar\frac{\partial\Psi(\mathbf{r},t)}{\partial t} = \hat{H}\Psi(\mathbf{r},t).
\end{equation}
\section{Results and discussion}
The results and discussions should appear here.
\subsection{Title of subsection}
All figures and tables must be mentioned in the text consecutively and numbered with Arabic numerals, such as Figure 1 or Table 1.
\begin{figure}[hbt!]
\centering
\includegraphics[width=1.0\linewidth]{Figure_1.jpg}
\caption{Each figure must have a caption that includes the figure number and a brief description, preferably one or two sentences.}\label{sample-figure}
\end{figure}
% change \begin{table} to \begin{widetable} if you want to use the wide table environment
\begin{table}[hbt!]
\centering
\caption{Each table must have a brief (one phrase or sentence) title that describes its contents.}\label{sample-table}
\begin{tabular}{cccc}
\hline
Head 1\textsuperscript{[a]} & Head 2 & Head 3 & Head 4 \\
\hline
Column 1 & Column 2\textsuperscript{[b]} & Column 3 & Column 4 \\
Column 1 & Column 2 & Column 3 & Column 4 \\
Column 1 & Column 2 & Column 3 & Column 4 \\
Column 1 & Column 2 & Column 3 & Column 4 \\
Column 1 & Column 2 & Column 3 & Column 4 \\
\hline
\end{tabular}
\vspace{0.5em}
\raggedright\footnotesize
{[a] Table footnote. [b] Table footnote.}
\end{table}
\section{Conclusion}
The conclusion section should appear here.
\begin{acknowledgments}
Here is the place to acknowledge people, organizations, and financing (you may state grant numbers and sponsors here).
\end{acknowledgments}
\begin{Supporting_Information}
The online version contains supplementary material available at website xxx. A listing of the contents of each file supplied as Supporting Information should be included.
\end{Supporting_Information}
\begin{Notes}
The authors declare no competing financial interest.
\end{Notes}
\bibliographystyle{cicc}
\bibliography{ref}
\label{lastpage}
\end{document}
\section{Additional facilities}
\subsection{Titles and author's name}
In the CiCC style, the title of the article and the author's name (or
authors' names) are used both at the beginning of the article for the
main title and throughout the article as running headlines at the top
of every page. The title is used on odd-numbered pages (rectos) and the
author's name appears on even-numbered pages (versos). Although the
main heading can run to several lines of text, the running headline
must be a single line ($\leqslant 45$ characters). Moreover, the main
heading can also incorporate new line commands (e.g. \verb"\\") but
these are not acceptable in a running headline. To enable you to
specify an alternative short title and an alternative short author's
name, the standard \verb"\title" and \verb"\author" commands have been
extended to take an optional argument to be used as the running
headline. The running headlines for this guide were produced using the
following code:
\begin{verbatim}
\title[Commun. Comput. Chem.,
\LaTeXe\ Guide for Authors]
\end{verbatim}
and
\begin{verbatim}
\author[B.L.N. Kennett]
{B.L.N. Kennett$^1$
\thanks{Pacific Region Office, CiCC} \\
$^{1}$Research School of Earth Sciences,
Australian National University,
Canberra ACT \emph{0200}, Australia
}
\end{verbatim}
The \verb"\thanks" note produces a footnote to the title or author.
\subsection{Captions for continued figures and tables}
The \verb"\caption*" command may be used to produce a caption with the
same number as the previous caption (for the corresponding type of
float). For instance, if a very large table does not fit on one page,
it must be split into two floats; the second float should use the
\verb"caption*" command with a suitable caption:
\begin{verbatim}
\begin{table}
\caption*{-- \textit{continued}}
\begin{tabular}{@{}lccll}
:
\end{tabular}
\end{table}
\end{verbatim}
\begin{figure}
\centering
\includegraphics[width=0.3\textwidth]{CICC.jpg}
\caption{An example figure in which space has been
left for the artwork.}
\label{sample-figure2}
\end{figure}
\subsection{Tables}
The CiCC style will cope with positioning of your tables and you
should not use the positional qualifiers on the
\verb"table" environment which would override these decisions. Table
captions should be at the top, therefore the \verb"\caption" command
should appear before the body of the table.
The \verb"tabular" environment can be used to produce tables with
single horizontal rules, which are allowed, if desired, at the head and
foot only. This environment has been modified for the CiCC style in the
following ways:
\begin{enumerate}
\item additional vertical space is inserted on either side of a rule;
\item vertical lines are not produced.
\end{enumerate}
Commands to redefine quantities such as \verb"\arraystretch" should be
omitted. For example, Table~\ref{symbols} is produced using the
following commands.
\begin{table}
\caption{Seismic velocities at major discontinuities.}
\label{symbols}
\begin{center}
\begin{tabular}{||lcccccc||}
\hline
Class & depth & radius
& $\alpha _{-}$ & $\alpha _{+}$
& $\beta _{-}$ & $\beta _{+}$ \\
\hline
ICB & 5154 & 1217 & 11.091 & 10.258
& 3.438 & 0. \\
CMB & 2889 & 3482 & 8.009 & 13.691
& 0. & 7.301 \\
\hline
\end{tabular}
\end{center}
\medskip
\end{table}
If you have a table that is to extend over two columns, you need to use
\verb"table*" in a minipage environment, i.e., you can say
\begin{verbatim}
\begin{table*}
\begin{minipage}{80mm}
\caption{Caption which will wrap round to the
width of the minipage environment.}
\begin{tabular}{%
:
\end{tabular}
\end{minipage}
\end{table*}
\end{verbatim}
The width of the minipage should more or less be the width of your table,
so you can only guess on a value on the first pass. The value will have to
be adjusted when your article is finally typeset, so don't worry
about making it the exact size.
\subsection{Running headlines}
As described above, the title of the article and the author's name (or
authors' names) are used as running headlines at the top of every page.
The headline on right pages can list up to three names; for more than
three use et~al. The \verb"\pagestyle" and \verb"\thispagestyle"
commands should {\em not\/} be used. Similarly, t··he commands
\verb"\markright" and \verb"\markboth" should not be necessary.
\subsection{Bibliography}
The bibliography is generated automatically by BibTeX using the \verb"cicc.bst" style. Below is a summary of the formatting conventions for each entry type.
\subsubsection{General Rules}
\textbf{Author Names:} Surname first, followed by initials with no comma between surname and initials. Multiple initials are separated by periods and tied with non-breaking spaces. Multiple authors are separated by commas; the last author is preceded by ``and'' (no Oxford comma for two authors; ``and'' for three or more).\\
Example: \verb"Berger M.~J. and Colella P." or \verb"Tan Z.~J., Tang T. and Zhang Z.~R."
\textbf{Punctuation Between Fields:} Fields are separated by commas. Each entry ends with a period.
\subsubsection{Journal Articles (\texttt{@article})}
Format: Authors, Title, \emph{Journal Name}, \textbf{Volume}(Issue) (Year), Pages.
\begin{itemize}
\item The article title appears in plain text (no italics, no quotes).
\item The journal name is italicized. If a \verb"shortjournal" field is provided, it is used instead of the full journal name.
\item The volume number is in bold. If an issue number is present, it follows in parentheses immediately after the volume.
\item The year is enclosed in parentheses after the volume/issue.
\item Page ranges follow the year, separated by a comma, using an en-dash.
\end{itemize}
Example output: Berger M.~J. and Colella P., Local adaptive mesh refinement for shock hydrodynamics, \emph{J. Comput. Phys.}, \textbf{82} (1989), 62--84.
\subsubsection{Books and Book Chapters (\texttt{@incollection}, \texttt{@inbook})}
Format: Authors, Title, In \emph{Book Title}, Vol.~\textbf{Volume}, (Eds.\ Editor Names), Publisher, Address, Year, pp.~Pages.
\begin{itemize}
\item The chapter/article title appears in plain text.
\item The book title is preceded by ``In'' and italicized.
\item If a volume is present, it appears as ``Vol.~\textbf{N}''.
\item Editors are listed in parentheses as ``(Eds.\ ...)'' or ``(Ed.\ ...)''.
\item Publisher, address, and year follow, separated by commas.
\item Page ranges are prefixed with ``pp.'' (or ``p.'' for a single page).
\end{itemize}
Example output: Tullius T.~D., Supramolecular reactivity and transport: Bioinorganic systems, In \emph{Comprehensive Supramolecular Chemistry}, Vol.~\textbf{5}, (Eds. Atwood J.~L., Davies J.~E.~D., MacNicol D.~D., V{\"o}gtle F. and Suslick K.~S.), Pergamon, Oxford, 1996, pp.~317--343.
\subsubsection{Standalone Books (\texttt{@book})}
Format: Authors, \emph{Book Title}, Publisher, Address, Year.
\begin{itemize}
\item The book title is italicized.
\item Publisher, address, and year follow, separated by commas.
\end{itemize}
\subsubsection{Preprints and Miscellaneous (\texttt{@misc})}
Format: Authors, Title, Year, DOI: identifier.
\begin{itemize}
\item The title appears in plain text.
\item The DOI is formatted as ``DOI: value''.
\end{itemize}
Example output: McKechnie S., Frost J.~M., ..., Dynamic symmetry breaking and spin splitting in metal halide perovskites, 2017, DOI: 10.48550/arXiv.1711.00533.
\subsubsection{Datasets (\texttt{@dataset})}
Format: Authors, \emph{Dataset Title}, Year, DOI: identifier.
\begin{itemize}
\item The dataset title is italicized (treated like a book title).
\end{itemize}
\subsubsection{Programs and Manuals (\texttt{@manual})}
Format: Authors, \emph{Program Title}, Organization, Address, Year.
\begin{itemize}
\item The program/manual title is italicized.
\item Organization and address follow, separated by commas.
\end{itemize}
Example output: Sheldrick G.~M., \emph{SHELXS-96, program for the solution of crystal structures}, University of G{\"o}ttingen, G{\"o}ttingen, Germany, 1996.
\subsubsection{Theses (\texttt{@phdthesis}, \texttt{@mastersthesis})}
Format: Authors, \emph{Thesis Title}, School, Address, Year.
\begin{itemize}
\item The thesis title is italicized.
\item The school name, address, and year follow, separated by commas.
\end{itemize}
Example output: Tullius T.~D., \emph{Title of PhD thesis}, University of Newcastle, UK, 1991.
Figure_1.jpg — binary, 137 KB
cicc.bst · 21 KB
%% File: `cicc.bst'
%% Custom bibliography style for CiCC journal.
%% Based on unsrtnat.bst, modified for use with natbib package.
%%
%% Original Copyright 1993-2007 Patrick W Daly (LPPL v1+)
%%
ENTRY
{ address
author
booktitle
chapter
doi
eid
edition
editor
howpublished
institution
isbn
issn
journal
shortjournal
key
month
note
number
organization
pages
publisher
school
series
title
type
url
volume
year
}
{}
{ label extra.label sort.label short.list }
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
#1 'mid.sentence :=
#2 'after.sentence :=
#3 'after.block :=
}
STRINGS { s t }
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
{ ", " * write$ }
{ output.state after.block =
{ add.period$ write$
newline$
"\newblock " write$
}
{ output.state before.all =
'write$
{ add.period$ " " * write$ }
if$
}
if$
mid.sentence 'output.state :=
}
if$
s
}
FUNCTION {output}
{ duplicate$ empty$
'pop$
'output.nonnull
if$
}
FUNCTION {output.check}
{ 't :=
duplicate$ empty$
{ pop$ "empty " t * " in " * cite$ * warning$ }
'output.nonnull
if$
}
FUNCTION {fin.entry}
{ add.period$
write$
newline$
}
FUNCTION {new.block}
{ output.state before.all =
'skip$
{ after.block 'output.state := }
if$
}
FUNCTION {new.sentence}
{ output.state after.block =
'skip$
{ output.state before.all =
'skip$
{ after.sentence 'output.state := }
if$
}
if$
}
FUNCTION {not}
{ { #0 }
{ #1 }
if$
}
FUNCTION {and}
{ 'skip$
{ pop$ #0 }
if$
}
FUNCTION {or}
{ { pop$ #1 }
'skip$
if$
}
FUNCTION {new.block.checka}
{ empty$
'skip$
'new.block
if$
}
FUNCTION {new.block.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.block
if$
}
FUNCTION {new.sentence.checka}
{ empty$
'skip$
'new.sentence
if$
}
FUNCTION {new.sentence.checkb}
{ empty$
swap$ empty$
and
'skip$
'new.sentence
if$
}
FUNCTION {field.or.null}
{ duplicate$ empty$
{ pop$ "" }
'skip$
if$
}
FUNCTION {emphasize}
{ duplicate$ empty$
{ pop$ "" }
{ "\emph{" swap$ * "}" * }
if$
}
INTEGERS { nameptr namesleft numnames }
FUNCTION {format.names}
{ 's :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr "{vv~}{ll} {f.}{, jj}" format.name$ 't :=
nameptr #1 >
{ namesleft #1 >
{ ", " * t * }
{ t "others" =
{ ", others" * }
{ " and " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {format.key}
{ empty$
{ key field.or.null }
{ "" }
if$
}
FUNCTION {format.authors}
{ author empty$
{ "" }
{ author format.names }
if$
}
FUNCTION {format.editors}
{ editor empty$
{ "" }
{ editor format.names
editor num.names$ #1 >
{ ", eds" * }
{ ", ed" * }
if$
}
if$
}
FUNCTION {format.isbn}
{ isbn empty$
{ "" }
{ new.block "ISBN " isbn * }
if$
}
FUNCTION {format.issn}
{ issn empty$
{ "" }
{ new.block "ISSN " issn * }
if$
}
FUNCTION {format.url}
{ url empty$
{ "" }
{ new.block "URL \url{" url * "}" * }
if$
}
FUNCTION {format.doi}
{ doi empty$
{ "" }
{ "DOI: " doi * }
if$
}
FUNCTION {format.title}
{ title empty$
{ "" }
{ title }
if$
}
FUNCTION {format.full.names}
{'s :=
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
{ namesleft #0 > }
{ s nameptr
"{vv~}{ll}" format.name$ 't :=
nameptr #1 >
{
namesleft #1 >
{ ", " * t * }
{
numnames #2 >
{ "," * }
'skip$
if$
t "others" =
{ " et~al." * }
{ ", " * t * }
if$
}
if$
}
't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
}
while$
}
FUNCTION {author.editor.full}
{ author empty$
{ editor empty$
{ "" }
{ editor format.full.names }
if$
}
{ author format.full.names }
if$
}
FUNCTION {author.full}
{ author empty$
{ "" }
{ author format.full.names }
if$
}
FUNCTION {editor.full}
{ editor empty$
{ "" }
{ editor format.full.names }
if$
}
FUNCTION {make.full.names}
{ type$ "book" =
type$ "inbook" =
or
'author.editor.full
{ type$ "proceedings" =
'editor.full
'author.full
if$
}
if$
}
FUNCTION {output.bibitem}
{ newline$
"\bibitem[" write$
label write$
")" make.full.names duplicate$ short.list =
{ pop$ }
{ * }
if$
"]{" * write$
cite$ write$
"}" write$
newline$
""
before.all 'output.state :=
}
FUNCTION {n.dashify}
{ 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
{ t #1 #2 substring$ "--" = not
{ "--" *
t #2 global.max$ substring$ 't :=
}
{ { t #1 #1 substring$ "-" = }
{ "-" *
t #2 global.max$ substring$ 't :=
}
while$
}
if$
}
{ t #1 #1 substring$ *
t #2 global.max$ substring$ 't :=
}
if$
}
while$
}
FUNCTION {format.date}
{ year duplicate$ empty$
{ "empty year in " cite$ * warning$
pop$ "" }
'skip$
if$
month empty$
'skip$
{ month
" " * swap$ *
}
if$
extra.label *
}
FUNCTION {format.btitle}
{ title emphasize
}
FUNCTION {tie.or.space.connect}
{ duplicate$ text.length$ #3 <
{ "~" }
{ " " }
if$
swap$ * *
}
FUNCTION {either.or.check}
{ empty$
'pop$
{ "can't use both " swap$ * " fields in " * cite$ * warning$ }
if$
}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
{ "Vol.~\textbf{" volume * "}" *
series empty$
'skip$
{ " of " * series emphasize * }
if$
"volume and number" number either.or.check
}
if$
}
FUNCTION {format.number.series}
{ volume empty$
{ number empty$
{ series field.or.null }
{ output.state mid.sentence =
{ "number" }
{ "Number" }
if$
number tie.or.space.connect
series empty$
{ "there's a number but no series in " cite$ * warning$ }
{ " in " * series * }
if$
}
if$
}
{ "" }
if$
}
FUNCTION {format.edition}
{ edition empty$
{ "" }
{ output.state mid.sentence =
{ edition "l" change.case$ " edition" * }
{ edition "t" change.case$ " edition" * }
if$
}
if$
}
INTEGERS { multiresult }
FUNCTION {multi.page.check}
{ 't :=
#0 'multiresult :=
{ multiresult not
t empty$ not
and
}
{ t #1 #1 substring$
duplicate$ "-" =
swap$ duplicate$ "," =
swap$ "+" =
or or
{ #1 'multiresult := }
{ t #2 global.max$ substring$ 't := }
if$
}
while$
multiresult
}
FUNCTION {format.pages}
{ pages empty$
{ "" }
{ pages multi.page.check
{ "pp.~" pages n.dashify * }
{ "p.~" pages * }
if$
}
if$
}
FUNCTION {format.eid}
{ eid empty$
{ "" }
{ "art." eid tie.or.space.connect }
if$
}
FUNCTION {format.vol.num.pages}
{ volume empty$
{ "" }
{ "\textbf{" volume * "}" * }
if$
number empty$
'skip$
{ "" * "\penalty0 (" * number * ")" * }
if$
year empty$
'skip$
{ " (" * year * ")" * }
if$
pages empty$
'skip$
{ duplicate$ empty$
{ pop$ format.pages }
{ ", " * pages n.dashify * }
if$
}
if$
}
FUNCTION {format.vol.num.eid}
{ volume field.or.null
number empty$
'skip$
{ "\penalty0 (" number * ")" * *
volume empty$
{ "there's a number but no volume in " cite$ * warning$ }
'skip$
if$
}
if$
eid empty$
'skip$
{ duplicate$ empty$
{ pop$ format.eid }
{ ":\penalty0 " * eid * }
if$
}
if$
}
FUNCTION {format.chapter.pages}
{ chapter empty$
'format.pages
{ type empty$
{ "chapter" }
{ type "l" change.case$ }
if$
chapter tie.or.space.connect
pages empty$
'skip$
{ ", " * format.pages * }
if$
}
if$
}
FUNCTION {format.editors.in}
{ editor empty$
{ "" }
{ editor num.names$ #1 >
{ "(Eds. " editor format.names * ")" * }
{ "(Ed. " editor format.names * ")" * }
if$
}
if$
}
FUNCTION {format.in.ed.booktitle}
{ booktitle empty$
{ "" }
{ "In \emph{" booktitle * "}" * }
if$
}
FUNCTION {empty.misc.check}
{ author empty$ title empty$ howpublished empty$
month empty$ year empty$ note empty$
and and and and and
key empty$ not and
{ "all relevant fields are empty in " cite$ * warning$ }
'skip$
if$
}
FUNCTION {format.thesis.type}
{ type empty$
'skip$
{ pop$
type "t" change.case$
}
if$
}
FUNCTION {format.tr.number}
{ type empty$
{ "Technical Report" }
'type
if$
number empty$
{ "t" change.case$ }
{ number tie.or.space.connect }
if$
}
FUNCTION {format.article.crossref}
{ key empty$
{ shortjournal empty$
{ journal empty$
{ "need key or journal for " cite$ * " to crossref " * crossref *
warning$
""
}
{ "In \emph{" journal * "}" * }
if$
}
{ "In \emph{" shortjournal * "}" * }
if$
}
{ "In " }
if$
" \citet{" * crossref * "}" *
}
FUNCTION {format.book.crossref}
{ volume empty$
{ "empty volume in " cite$ * "'s crossref of " * crossref * warning$
"In "
}
{ "Volume" volume tie.or.space.connect
" of " *
}
if$
editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ series empty$
{ "need editor, key, or series for " cite$ * " to crossref " *
crossref * warning$
"" *
}
{ "\emph{" * series * "}" * }
if$
}
'skip$
if$
}
'skip$
if$
" \citet{" * crossref * "}" *
}
FUNCTION {format.incoll.inproc.crossref}
{ editor empty$
editor field.or.null author field.or.null =
or
{ key empty$
{ booktitle empty$
{ "need editor, key, or booktitle for " cite$ * " to crossref " *
crossref * warning$
""
}
{ "In \emph{" booktitle * "}" * }
if$
}
{ "In " }
if$
}
{ "In " }
if$
" \citet{" * crossref * "}" *
}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.title "title" output.check
crossref missing$
{ shortjournal empty$
{ journal emphasize "journal" output.check }
{ shortjournal emphasize "journal" output.check }
if$
eid empty$
{ format.vol.num.pages output }
{ format.vol.num.eid output }
if$
}
{ format.article.crossref output.nonnull
eid empty$
{ format.pages output }
{ format.eid output }
if$
}
if$
format.issn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {book}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.number.series output
publisher "publisher" output.check
address output
}
{ format.book.crossref output.nonnull
}
if$
format.edition output
format.date "year" output.check
format.isbn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
author format.key output
format.title "title" output.check
howpublished output
address output
format.date output
format.isbn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
editor format.key output
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
format.btitle "title" output.check
crossref missing$
{ format.bvolume output
format.chapter.pages "chapter and pages" output.check
format.number.series output
publisher "publisher" output.check
address output
}
{ format.chapter.pages "chapter and pages" output.check
format.book.crossref output.nonnull
}
if$
format.edition output
format.date "year" output.check
format.isbn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.title "title" output.check
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.editors.in output
format.number.series output
publisher "publisher" output.check
address output
format.edition output
format.date "year" output.check
format.chapter.pages output
}
{ format.incoll.inproc.crossref output.nonnull
format.chapter.pages output
}
if$
format.isbn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.title "title" output.check
crossref missing$
{ format.in.ed.booktitle "booktitle" output.check
format.bvolume output
format.editors.in output
format.number.series output
address empty$
{
organization output
publisher output
format.date "year" output.check
format.pages output
}
{ address output.nonnull
format.date "year" output.check
organization output
publisher output
format.pages output
}
if$
}
{ format.incoll.inproc.crossref output.nonnull
format.pages output
}
if$
format.isbn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {conference} { inproceedings }
FUNCTION {manual}
{ output.bibitem
format.authors output
author format.key output
format.btitle "title" output.check
organization output
address output
format.edition output
format.date output
format.url output
note output
fin.entry
}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.title "title" output.check
"Master's thesis" format.thesis.type output.nonnull
school "school" output.check
address output
format.date "year" output.check
format.url output
note output
fin.entry
}
FUNCTION {misc}
{ output.bibitem
format.authors output
author format.key output
format.title output
howpublished output
format.date output
format.doi output
format.issn output
format.url output
note output
fin.entry
empty.misc.check
}
FUNCTION {dataset}
{ output.bibitem
format.authors output
author format.key output
format.btitle "title" output.check
howpublished output
format.date output
format.doi output
format.issn output
format.url output
note output
fin.entry
empty.misc.check
}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.btitle "title" output.check
school "school" output.check
address output
format.date "year" output.check
format.url output
note output
fin.entry
}
FUNCTION {proceedings}
{ output.bibitem
format.editors output
editor format.key output
format.btitle "title" output.check
format.bvolume output
format.number.series output
address output
format.date "year" output.check
organization output
publisher output
format.isbn output
format.doi output
format.url output
note output
fin.entry
}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.title "title" output.check
format.tr.number output.nonnull
institution "institution" output.check
address output
format.date "year" output.check
format.url output
note output
fin.entry
}
FUNCTION {unpublished}
{ output.bibitem
format.authors "author" output.check
author format.key output
format.title "title" output.check
note "note" output.check
format.date output
format.url output
fin.entry
}
FUNCTION {default.type} { misc }
MACRO {jan} {"January"}
MACRO {feb} {"February"}
MACRO {mar} {"March"}
MACRO {apr} {"April"}
MACRO {may} {"May"}
MACRO {jun} {"June"}
MACRO {jul} {"July"}
MACRO {aug} {"August"}
MACRO {sep} {"September"}
MACRO {oct} {"October"}
MACRO {nov} {"November"}
MACRO {dec} {"December"}
READ
FUNCTION {sortify}
{ purify$
"l" change.case$
}
INTEGERS { len }
FUNCTION {chop.word}
{ 's :=
'len :=
s #1 len substring$ =
{ s len #1 + global.max$ substring$ }
's
if$
}
FUNCTION {format.lab.names}
{ 's :=
s #1 "{vv~}{ll}" format.name$
s num.names$ duplicate$
#2 >
{ pop$ " et~al." * }
{ #2 <
'skip$
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ " et~al." * }
{ " and " * s #2 "{vv~}{ll}" format.name$ * }
if$
}
if$
}
if$
}
FUNCTION {author.key.label}
{ author empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ author format.lab.names }
if$
}
FUNCTION {author.editor.key.label}
{ author empty$
{ editor empty$
{ key empty$
{ cite$ #1 #3 substring$ }
'key
if$
}
{ editor format.lab.names }
if$
}
{ author format.lab.names }
if$
}
FUNCTION {author.key.organization.label}
{ author empty$
{ key empty$
{ organization empty$
{ cite$ #1 #3 substring$ }
{ "The " #4 organization chop.word #3 text.prefix$ }
if$
}
'key
if$
}
{ author format.lab.names }
if$
}
FUNCTION {editor.key.organization.label}
{ editor empty$
{ key empty$
{ organization empty$
{ cite$ #1 #3 substring$ }
{ "The " #4 organization chop.word #3 text.prefix$ }
if$
}
'key
if$
}
{ editor format.lab.names }
if$
}
FUNCTION {calc.short.authors}
{ type$ "book" =
type$ "inbook" =
or
'author.editor.key.label
{ type$ "proceedings" =
'editor.key.organization.label
{ type$ "manual" =
'author.key.organization.label
'author.key.label
if$
}
if$
}
if$
'short.list :=
}
FUNCTION {calc.label}
{ calc.short.authors
short.list
"("
*
year duplicate$ empty$
short.list key field.or.null = or
{ pop$ "" }
'skip$
if$
*
'label :=
}
INTEGERS { seq.num }
FUNCTION {init.seq}
{ #0 'seq.num :=}
EXECUTE {init.seq}
FUNCTION {int.to.fix}
{ "000000000" swap$ int.to.str$ *
#-1 #10 substring$
}
FUNCTION {presort}
{ calc.label
label sortify
" "
*
seq.num #1 + 'seq.num :=
seq.num int.to.fix
'sort.label :=
sort.label *
#1 entry.max$ substring$
'sort.key$ :=
}
ITERATE {presort}
SORT
STRINGS { longest.label last.label next.extra }
INTEGERS { longest.label.width last.extra.num number.label }
FUNCTION {initialize.longest.label}
{ "" 'longest.label :=
#0 int.to.chr$ 'last.label :=
"" 'next.extra :=
#0 'longest.label.width :=
#0 'last.extra.num :=
#0 'number.label :=
}
FUNCTION {forward.pass}
{ last.label label =
{ last.extra.num #1 + 'last.extra.num :=
last.extra.num int.to.chr$ 'extra.label :=
}
{ "a" chr.to.int$ 'last.extra.num :=
"" 'extra.label :=
label 'last.label :=
}
if$
number.label #1 + 'number.label :=
}
FUNCTION {reverse.pass}
{ next.extra "b" =
{ "a" 'extra.label := }
'skip$
if$
extra.label 'next.extra :=
extra.label
duplicate$ empty$
'skip$
{ "{\natexlab{" swap$ * "}}" * }
if$
'extra.label :=
label extra.label * 'label :=
}
EXECUTE {initialize.longest.label}
ITERATE {forward.pass}
REVERSE {reverse.pass}
FUNCTION {bib.sort.order}
{ sort.label 'sort.key$ :=
}
ITERATE {bib.sort.order}
SORT
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
{ preamble$ write$ newline$ }
if$
"\begin{thebibliography}{" number.label int.to.str$ * "}" *
write$ newline$
"\providecommand{\natexlab}[1]{#1}"
write$ newline$
"\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
"\expandafter\ifx\csname urlstyle\endcsname\relax"
write$ newline$
" \providecommand{\doi}[1]{doi: #1}\else"
write$ newline$
" \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi"
write$ newline$
}
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
"\end{thebibliography}" write$ newline$
}
EXECUTE {end.bib}
cicc.cls · 9 KB
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{cicc}[2024/05/06 Communications in Computational Chemistry Class]
% ==============================================================================
% 1. 核心定义与声明 (Core Identification)
% ==============================================================================
\LoadClass[twocolumn,twoside]{article}
% ==============================================================================
% 2. 基础页面几何设定 (Layout & Geometry)
% ==============================================================================
% 使用 includehead 确保页眉高度被计算在边距内,防止与正文冲突
\RequirePackage[
a4paper,
left=0.6in,
right=0.6in,
top=0.2in,
bottom=0.2in,
headheight=45pt, % 增加高度以容纳首字母缩写和期刊信息
headsep=5pt,
footskip=0.4in,
includehead,
includefoot
]{geometry}
% ==============================================================================
% 3. 字体与编码 (Fonts & encoding)
% ==============================================================================
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\RequirePackage{newtxtext, newtxmath} % 泰晤士风格字体
\RequirePackage{microtype} % 改善间距调整
% ==============================================================================
% 4. 必需宏包加载 (Required Packages)
% ==============================================================================
\RequirePackage{graphicx}
\RequirePackage{xcolor}
\RequirePackage{etoolbox}
\RequirePackage{amsmath}
\RequirePackage{calc}
\RequirePackage{xstring}
\RequirePackage{authblk} % 作者机构处理
\RequirePackage{cuted} % 双栏中的单栏环境 (strip)
\RequirePackage{lipsum} % 占位文本
% ==============================================================================
% 5. 期刊元数据定义 (Journal Metadata)
% ==============================================================================
\newcommand{\journalfullname}[1]{\gdef\@journalfullname{#1}}
\newcommand{\journalabbrevname}[1]{\gdef\@journalabbrevname{#1}}
\newcommand{\volume}[1]{\gdef\@volume{#1}}
\newcommand{\issue}[1]{\gdef\@issue{#1}}
\newcommand{\doi}[1]{\gdef\@doi{#1}}
\newcommand{\articletype}[1]{\gdef\@articletype{#1}}
% --- 修改日期元数据的初始状态 ---
\newcommand{\receiveddate}[1]{\gdef\@receiveddate{#1}}
\newcommand{\revisiondate}[1]{\gdef\@revisiondate{#1}}
\newcommand{\accepteddate}[1]{\gdef\@accepteddate{#1}}
\newcommand{\onlinedate}[1]{\gdef\@onlinedate{#1}}
\newcommand{\publisheddate}[1]{\gdef\@publisheddate{#1}}
\newcommand{\publishedyear}[1]{\gdef\@publishedyear{#1}}
% 将默认值设为空
\gdef\@receiveddate{}
\gdef\@revisiondate{}
\gdef\@accepteddate{}
\gdef\@onlinedate{}
\gdef\@publisheddate{}
\gdef\@publishedyear{}
% --- 核心逻辑替换:简洁的起始页设置 ---
\RequirePackage{totpages}
\RequirePackage{refcount}
\newcommand{\firstpage}[1]{%
\setcounter{page}{#1}% 直接设置页码
\gdef\@pagenumbers{%
% \the\value{page}--\the\numexpr#1 + \getrefnumber{TotPages} - 1\relax%
#1--\the\numexpr#1 + \getrefnumber{TotPages} - 1\relax%
}%
}
% 默认值设定
\journalfullname{Communications in Computational Chemistry}
\journalabbrevname{Commun. Comput. Chem.}
\articletype{Communications}
\doi{doi: 10.4208/cicc.2026.xxx}
\volume{xx}
\issue{xx}
\publishedyear{xxxx}
\receiveddate{dd/mm/yyyy}
\revisiondate{dd/mm/yyyy}
\accepteddate{dd/mm/yyyy}
\onlinedate{dd/mm/yyyy}
\publisheddate{dd/mm/yyyy}
% \firstpage{x}
%\pagenumbers{1-10}
% ==============================================================================
% 6. 标题与作者逻辑 (Title & Author Logic)
% ==============================================================================
% 短标题逻辑
\newcommand{\shorttitle}{}
\renewcommand{\title}[2][]{%
\gdef\@title{#2}
\if\relax\detokenize{#1}\relax \gdef\shorttitle{#2} \else \gdef\shorttitle{#1} \fi
}
% 自动获取第一作者用于页眉
\newcounter{authorcount}
\newcommand{\firstauthorname}{}
\NewCommandCopy\origauthor\author
\renewcommand{\author}[2][]{%
\stepcounter{authorcount}%
\ifnum\value{authorcount}=1 \gdef\firstauthorname{#2} \fi
\ifx& \origauthor{#2} \else \origauthor[#1]{#2} \fi
}
\newcommand{\authorheader}{%
\ifnum\value{authorcount}>1 \firstauthorname\ et al. \else \firstauthorname \fi
}
% ==============================================================================
% 7. 标题区定制 (Maketitle Redefinition)
% ==============================================================================
\renewcommand\Affilfont{\small\raggedright}
\def\@maketitle{%
\newpage \null
\vspace{-2em}
\begin{flushleft}
\let \footnote \thanks
{\LARGE\bfseries \@title \par}
\vspace{1.5em}
{\large \@author \par}
\vspace{1em}
% --- 重新定义的日期显示逻辑 ---
{\footnotesize
% 检查 Received Date
\ifcsvoid{@receiveddate}{}{Received: \@receiveddate}%
% 检查 Revision Date,如果有值,前面加个分号隔开
\ifcsvoid{@revisiondate}{}{; Revision: \@revisiondate}%
% 检查 Accepted Date
\ifcsvoid{@accepteddate}{}{; Accepted: \@accepteddate}%
% 检查 Online Date
\ifcsvoid{@onlinedate}{}{; Online: \@onlinedate}%
% 检查 Online Date
\ifcsvoid{@publisheddate}{}{; Published: \@publisheddate}%
. % 句尾点号
}
% {\footnotesize
% Received: \@receiveddate; Revision: \@revisiondate;
% Accepted: \@accepteddate; Online: \@onlinedate.}
\end{flushleft}
\par
}
% ==============================================================================
% 8. 摘要、关键词与图文摘要 (Abstract & GA)
% ==============================================================================
\RequirePackage[runin]{abstract}
\setlength{\abstitleskip}{-1em}
\setlength{\absparindent}{0em}
\setlength{\absleftindent}{1em}
\setlength{\absrightindent}{1em}
\abslabeldelim{:}
\newcommand{\keywords}[1]{%
\par\vspace{0.5em}
\noindent{\small\textbf{Key words:}} #1
}
% 装饰线逻辑
\BeforeBeginEnvironment{abstract}{\par\centering\rule{\textwidth - 2em}{0.5pt}}
\AfterEndEnvironment{abstract}{\par\centering\rule{\textwidth - 2em}{0.5pt}\vspace{1em}}
% 图文摘要 (Graphical Abstract)
\newcommand{\graphicalabstractname}{Graphical Abstract}
\newenvironment{graphicalabstract}{%
\vspace{1em} \noindent
\begin{minipage}{\textwidth - 2em}
\begin{flushleft}
\noindent\textbf{\small\graphicalabstractname:} \par\vspace{0.8em}
}{%
\par\vspace{1.5em}
\noindent\rule{\textwidth}{0.5pt}
\end{flushleft}
\end{minipage} \vspace{1.5em}
}
% ==============================================================================
% 9. 页眉页脚设定 (Header & Footer)
% ==============================================================================
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{1pt}
% 奇数页页眉:显示标题
% \fancyhead[LO]{\textit{\shorttitle}}
\fancyhead[LO]{\textit{\small \authorheader / \@journalabbrevname, \@publishedyear, \@volume(\@issue), \@pagenumbers}}
\fancyfoot[CO]{\thepage}
% 偶数页页眉:显示作者和期刊信息
\fancyhead[RE]{\textit{\small \authorheader / \@journalabbrevname, \@publishedyear, \@volume(\@issue), \@pagenumbers}}
\fancyfoot[CE]{\thepage}
% 首页特殊样式
\fancypagestyle{firstpage}{
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyhead[L]{%
\begin{minipage}[t]{0.55\textwidth}
\raggedright
{\small\bfseries\color[RGB]{31,73,125}\MakeUppercase{\@journalabbrevname}}\\[1pt]
{\small Vol. \@volume, No. \@issue\ | pp. \@pagenumbers\ | \@publishedyear}
\end{minipage}%
\begin{minipage}[t]{0.45\textwidth}
\raggedleft
{\small\bfseries\color[RGB]{31,73,125}\@articletype}\\[1pt]
{\small\color{black!60}\@doi}
\end{minipage}%
\par\vspace{4pt}%
{\color[RGB]{31,73,125}\rule{\textwidth}{0.6pt}}%
}
\fancyfoot[C]{\thepage}
}
% ==============================================================================
% 10. 浮动体与特殊环境 (Floats & Special Environments)
% ==============================================================================
\RequirePackage{caption}
\captionsetup{labelsep=period, labelfont=bf}
% 宽版文本环境 (基于 cuted)
\newenvironment{widetext}{%
\par\medskip
\begin{strip}
\centering \vspace{-10pt}
\rule{0.9\textwidth}{0.4pt} \vspace{8pt}
\setlength{\abovedisplayskip}{12pt}
\setlength{\belowdisplayskip}{12pt}
\par\interlinepenalty=10000
}{%
\par\vspace{8pt}
\rule{0.9\textwidth}{0.4pt} \vspace{4pt}
\end{strip}
\par\medskip
}
% 浮动体环境简化
\newenvironment{widefigure}[1][tbp]{\begin{figure*}[#1]}{\end{figure*}}
\newenvironment{widetable}[1][tbp]{\begin{table*}[#1]}{\end{table*}}
% 声明 Scheme 环境
\DeclareCaptionType[fileext=los]{scheme}[Scheme][List of Schemes]
% 文献规范
\RequirePackage[numbers,sort&compress]{natbib}
\setlength{\bibsep}{0pt plus 0.3ex}
% 期刊特定章节
\newenvironment{acknowledgments}{\section*{Acknowledgments}}{}
\newenvironment{Supporting_Information}{\section*{Supporting information}}{}
\newenvironment{Notes}{\section*{Notes}}{}
\endinput
ref.bib · 3 KB
% [1] Journal Articles
@article{berger1989local,
title = {Local adaptive mesh refinement for shock hydrodynamics},
author = {Berger, M. J. and Colella, P.},
journal = {Journal of Computational Physics},
shortjournal = {J. Comput. Phys.},
volume = {82},
pages = {62--84},
year = {1989},
publisher = {Elsevier}
}
% [2] Article accepted
@article{tan_simple_moving,
title = {A simple moving mesh method for one- and two-dimensional phase-field equations},
author = {Tan, Z. J. and Tang, T. and Zhang, Z. R.},
journal = {Journal of Computational and Applied Mathematics},
shortjournal = {J. Comput. Appl. Math.},
note = {To appear}
}
% [3] Preprints
@misc{mckechnie2017arxiv,
title = {Dynamic symmetry breaking and spin splitting in metal halide perovskites},
author = {McKechnie, S. and Frost, J. M. and Pashov, D. and Azarhoosh, P. and Walsh, A. and Schilfgaarde, M.},
year = {2017},
eprint = {1711.00533},
archiveprefix = {arXiv},
doi = {10.48550/arXiv.1711.00533}
}
% [4] Books without editor
@incollection{boor1973good,
title = {Good approximation by splines with variable knots II},
author = {de Boor, C.},
booktitle = {Springer Lecture Notes Series 363},
year = {1973},
publisher = {Springer-Verlag},
address = {Berlin}
}
% [5] Books with editor
@incollection{tullius1996comprehensive,
title = {Supramolecular reactivity and transport: Bioinorganic systems},
author = {Tullius, T. D.},
booktitle = {Comprehensive Supramolecular Chemistry},
editor = {Atwood, J. L. and Davies, J. E. D. and MacNicol, D. D. and V{\"o}gtle, F. and Suslick, K. S.},
volume = {5},
pages = {317--343},
year = {1996},
publisher = {Pergamon},
address = {Oxford}
}
% [6] Data citations (Template)
@dataset{authors_year_dataset,
author = {Doe, John},
title = {Dataset title},
year = {Year},
publisher = {Data repository or archive},
version = {Version (if any)},
doi = {persistent identifier (e.g. DOI)}
}
% [7] Programs
@manual{sheldrick1996shelxs,
title = {SHELXS-96, program for the solution of crystal structures},
author = {Sheldrick, G. M.},
organization = {University of G{\"o}ttingen},
address = {G{\"o}ttingen, Germany},
year = {1996}
}
% [8] Thesis
@phdthesis{tullius1991title,
title = {Title of PhD thesis},
author = {Tullius, T. D.},
school = {University of Newcastle},
address = {UK},
year = {1991}
}The first page, as this template compiles today. Click it to enlarge, and again to shrink. Open the file ↗