Using biblatex with a numeric style and a book class with frontmatter/mainmatter, would it be possible to have all citations in the frontmatter appear last in the list of references, as if the frontmatter (from biblatex's point of view) appeared after the mainmatter?
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,sorting=none,style=nature]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{hydrogen,
author = {Author, A.},
year = {2001},
title = {Alpha}}
@misc{neodymium,
author = {Luthor, Lex.},
year = {2002},
title = {Bravo}}
\end{filecontents}
\addbibresource{\jobname.bib}
\frontmatter
\cite{neodymium}
\mainmatter
\cite{hydrogen}
\backmatter
\printbibliography[title={List of references}]
\end{document}
In the above MWE, references in the "List of references" are printed in the same order as they were given in the document, so neodymium
would be listed before hydrogen
in the "List of references".
This also means that the citation in the frontmatter would be labelled [1]
in the text and the first citation in the mainmatter would be labelled [2]
.
This is just as expected with the numeric style as often used in science and engineering theses.
I wonder if there is some way to make the first citation in the mainmatter be [1]
(because it might be jarring for the reader to see the first citation in the first chapter be something like [11]
, it may make them wonder what they missed), without having a separate \printbibliography
for the frontmatter (nor using refsection
or refsegments
, because I don't think they will help in this case). Preferably any citations in the frontmatter would simply be appended to the end of "List of references", as if the frontmatter was processed after the frontmatter by biblatex
.
I think this would be hard to achieve. But I'd like to hear if anyone knows better?
Would something like this be possible? Have I missed something obvious?
I have read the Sorting section in the biblatex manual, and read these related (but not-very-pertinent) questions on TeX.SE
I am heavily indebted to Hoger Gerhardt for posting his example on TeX.SE.
I chose to put a DOI symbol (thanks to the Academicons package) at the end of each bib entry. I think it looks rad.
\usepackage[backend=biber,date=year,doi=true,url=false,style=nature]{biblatex}
\usepackage{fontawesome5}
\usepackage{academicons}
\usepackage{hyperref}
\renewbibmacro*{finentry}{%
\iffieldundef{doi}{%
% Entry lacks DOI
\iffieldundef{url}{%
% Entry lacks URL and DOI
\finentry%
}{%
% Entry has URL but lacks DOI
% Show URL hyperlink as icon (concsiously not using same icon as our "external hyperlinks")
\finentry\space%
\href{\thefield{url}}{\footnotesize\faIcon{link}}%
}%
}{%
% Entry has DOI \aiDoi
\finentry\space%
% lower the DOI symbol a little to align better with baseline
\href{https://doi.org/\thefield{doi}}{\raisebox{-0.1ex}{\aiDoi}}%
}%
}%
% suppress output of DOI field (hide both DOI label and string)
\DeclareFieldFormat{doi}{}%
Here's an example of how the typeset bibliography entries look like (please excuse the poor resolution, the screenshotter suddenly decided to drop the quality):
Renewable Capacity Statistics 2023 released by the International Renewable Energy Agency (IRENA) confirms upward trend of renewables against declining new fossil fuel capacity.
The World Water Map can help us understand where and why water gaps arise, how climate change might aggravate them—and even how they might be managed.
Via https://flowingdata.com/2023/04/03/world-water-gap/
Learn how to create unit tests for scientific papers in Python using PyTest.
Have you also been in the situation where you need to write up your latest Raman spectra of ZnO?
And just exasperated at the thought of typing up all those mode assignments using LaTeX math notation (because honestly, it looks good).
I created this macro, \nonresmode{E2h}[E2l][long][diff]
, to make it easier to write.
Now all I have to do is write, for example, \nonresmode{A1LO}
, and LaTeX does all the work and produces a nicely typeset label.
Here is some example LaTeX source:
Non-resonant Raman with green laser excitation (\qty{532}{\nm}).
All the observed Raman modes could be assigned to either a fundamental mode
(\nonresmode{E2l}[][long], \nonresmode{A1TO}, \nonresmode{E1TO}, \nonresmode{E2h}[][long],
\nonresmode{E1LO}, \nonresmode{A1LO}), an overtone (\nonresmode{2E2l}[][long], \nonresmode{2E1LO},
\nonresmode{2A1LO}), a sum mode (\nonresmode{E2h}[E2l][long], \nonresmode{E2h}[2E2l][long],
\nonresmode{2E2h}[E2l][long], $2(\nonresmode{E2h}[E2l][long])$) or
a difference mode (\nonresmode{E2h}[E2l][long][diff]).
and the resulting output:
And here is the macro definitions (to avoid repeating the main "correspondence table" between the short-codes and the typeset text,
I opted to define multiple functions. I also made use of the beautiful macro by egreg that defines a case-like environment:
% defines a case environment
% code taken from a TeX.SE answer by egreg
% https://tex.stackexchange.com/a/451094/10824
% fantastic piece of code, works beautifully, for an arbitrary number of cases
\ExplSyntaxOn
\NewExpandableDocumentCommand{\stringcase}{mO{}m}{%
\str_case_e:nnF { #1 } { #3 } { #2 }
}
\ExplSyntaxOff
% not meant to be exposed to user
\NewDocumentCommand{\NonResonantModesShort}{m}{%
\stringcase{#1}[\textbf{??}]{%
% note, \text{} inside math environment will obey font settings from
% surrounding environment (e.g., bold) but \mathrm{} will not which
% makes it better for this purpose
% {shortcode}{LaTeX typeset text}
{E2l}{\ensuremath{E_{2\mathrm{l}}}}%
{A1TO}{\ensuremath{A_{1(\mathrm{TO})}}}%
{E1TO}{\ensuremath{E_{1(\mathrm{TO})}}}%
{E2h}{\ensuremath{E_{2\mathrm{h}}}}%
{E1LO}{\ensuremath{E_{1(\mathrm{LO})}}}%
{A1LO}{\ensuremath{A_{1(\mathrm{LO})}}}%
{2E2l}{\ensuremath{2E_{2\mathrm{l}}}}%
{2E2h}{\ensuremath{2E_{2\mathrm{h}}}}%
{2E1LO}{\ensuremath{2E_{1(\mathrm{LO})}}}%
{2A1LO}{\ensuremath{2A_{1(\mathrm{LO})}}}%
}%
}
% not meant to be exposed to user
\NewDocumentCommand{\NonResonantModesLong}{m}{%
\stringcase{#1}[\textbf{??}]{%
{E2l}{\ensuremath{E_{2\mathrm{(low)}}}}%
{A1TO}{\ensuremath{A_{1(\mathrm{TO})}}}%
{E1TO}{\ensuremath{E_{1(\mathrm{TO})}}}%
{E2h}{\ensuremath{E_{2\mathrm{(high)}}}}%
{E1LO}{\ensuremath{E_{1(\mathrm{LO})}}}%
{A1LO}{\ensuremath{A_{1(\mathrm{LO})}}}%
{2E2l}{\ensuremath{2E_{2\mathrm{(low)}}}}%
{2E2h}{\ensuremath{2E_{2\mathrm{(high)}}}}%
{2E1LO}{\ensuremath{2E_{1(\mathrm{LO})}}}%
{2A1LO}{\ensuremath{2A_{1(\mathrm{LO})}}}%
}%
}
% not meant to be exposed to user
\NewDocumentCommand{\NonResonantModesLogic}{m O{short}}{%
\IfNoValueTF{#2}{%
% arg #2 (optional) not given, proceed as "short"
\NonResonantModesShort{#1}%
}{%
% arg #2 (optional) was given, check if it is "long"
\ifthenelse{\equal{#2}{long}}{%
% "long" was given
\NonResonantModesLong{#1}%
}{%
% arg was given, but is not equal to "long"
% check if it is "short"
\ifthenelse{\equal{#2}{short}}{%
\NonResonantModesShort{#1}%
}{%
% arg was neither "long" nor "short", something else
\NonResonantModesShort{}%
}%
}%
}%
}
% Non-resonant Raman modes of ZnO
% \nonresmode{E2h}[E2l][long][diff]
% Use \nonresmode like this:
% \nonresmode{E2l} => E2l
% \nonresmode{E2l}[][long] => E2low
% \nonresmode{} => ??
% \nonresmode => ERROR
% \nonresmode{E2l}[E2h] => E2l+E2h
% \nonresmode{E2l}[E2h][][diff] => E2l-E2h
% \nonresmode{E2l}[E2h][long] => E2low + E2high
% only specify optional arguments if necessary, i.e.,
% please don't do \nonresmode{E2l}[][][], but please do \nonresmode{E2l}
% remember, optional arg "o" will supply the special -NoValue- marker if not given
% the arg O{sum} is an optional arg with the default value "sum"
\NewDocumentCommand{\nonresmode}{m o O{short} O{sum}}{%
\IfNoValueTF{#2}{%
% no arg #2 was given, which means we are typesetting a single mode
% if no arg #2 was given, then we can disregard #4
\IfNoValueTF{#3}{%
% this way, if #3 was not given, we avoid passing the special -NoValue- marker
\NonResonantModesLogic{#1}%
}{%
% if #3 was given, pass it on, unless it was empty
\ifthenelse{\isempty{#3}}{%
\NonResonantModesLogic{#1}%
}{%
\NonResonantModesLogic{#1}[#3]%
}%
}%
}{%
% If optional arg #2 was given and is empty, perform the same code as if -NoValue-
\ifthenelse{\isempty{#2}}{%
\IfNoValueTF{#3}{%
% this way, if #3 was not given, we avoid passing the special -NoValue- marker
\NonResonantModesLogic{#1}%
}{%
% if #3 was given, pass it on, unless it was empty
\ifthenelse{\isempty{#3}}{%
\NonResonantModesLogic{#1}%
}{%
\NonResonantModesLogic{#1}[#3]%
}%
}%
}{%
% if #2 is not -NoValue- nor empty, then just assume that it is one of the mode shortcodes
% (we don't try to check that it is in fact part of that set)
% But first, determine if we are writing "sum" or "diff" modes
% (note that we assume that #4 has a value, since it is the last arg we never expect it%
% to be given explicitly empty)
\ifthenelse{\equal{#4}{diff}}{%
% Since #4 has a default, we can simplify this if-else to only check for "diff"
% and we can then assume that the else-clause matches "sum"
% But note that arg #3 may have been given explicity empty, [], thus overriding the default
% so we must check for that
\ifthenelse{\isempty{#3}}{%
% Note, to get consistent spacing around the +/- sign whether the
% call to \nonresmode{} is surrounded by math mode or not, it is
% good to surround everything in ensuremath{} here
% Also, for "short" mode, I want to kill the space surrounding the +/- sign
% (to keep it compact, which is probably what the user wants in "short" mode)
\ensuremath{\NonResonantModesLogic{#1}{-}\NonResonantModesLogic{#2}}%
}{%
\ifthenelse{\equal{#3}{long}}{%
\ensuremath{\NonResonantModesLogic{#1}[#3]-\NonResonantModesLogic{#2}[#3]}%
}{%
\ensuremath{\NonResonantModesLogic{#1}{-}\NonResonantModesLogic{#2}}%
}%
}%
}{%
\ifthenelse{\isempty{#3}}{%
\ensuremath{\NonResonantModesLogic{#1}{+}\NonResonantModesLogic{#2}}%
}{%
\ifthenelse{\equal{#3}{long}}{%
\ensuremath{\NonResonantModesLogic{#1}[#3]+\NonResonantModesLogic{#2}[#3]}%
}{%
\ensuremath{\NonResonantModesLogic{#1}{+}\NonResonantModesLogic{#2}}%
}%
}%
}%
}%
}%
}
Could we cross-reference objects (tables, figures, etc.) that exist in the attached papers (whose code-base is foreign to the thesis) while also having these cross-references target the appropriate paper in the List of Papers, with the aid of the cleveref, caption and hyperref packages?
To clarify, for a compilation PhD thesis, where the thesis itself is created using LaTeX, but where the attached papers (hence the compilation part in the thesis) may or may not have been created using LaTeX (even if they were created using LaTeX, their codebase is not available to the thesis at runtime).
So we need to setup some sort of static list of manually created \label{}
s, that should occupy a counter and namespace separate from the thesis' own figures, tables, etc.
Uppsala university has a thesis template (my version, LuaLaTeX-based) that defines a listofpapers
environment (the details of which are not important right now) that allows us to create a List of Papers and easily assign a label for each paper, like this:
\begin{listofpapers}
\item\label{P1}
Li, C.; Ahmed, T.; Ma, M.; Edvinsson, T.; Zhu, J. %
Photocatalytic properties of ZnO/CdS nanoarrays\\%
\item \label{P2}
Ahmed, T.; Edvinsson, T. %
Photocatalytic activity of ultrasmall ZnO\\%
\end{listofpapers}
The above works in conjunction with the following definitions in the preamble:
\usepackage{cleveref}
\crefname{listofpapersc}{\textbf{\textsc{paper}}}{\textbf{\textsc{papers}}}
\Crefname{listofpapersc}{\textbf{\textsc{paper}}}{\textbf{\textsc{papers}}}
\creflabelformat{listofpapersc}{#2\textbf{\textsc{#1}}#3}
to give a nicely formatted Paper 1 (in small-caps in this case) in the text when we issue \cref{P1}
.
I have limited time to type this up, so here goes.
\usepackage{newfloat} % for the DeclareFloatingEnvironment cmd
\usepackage[nameinlink]{cleveref}
\crefname{listofpapersc}{\textbf{\textsc{paper}}}{\textbf{\textsc{papers}}}
\Crefname{listofpapersc}{\textbf{\textsc{paper}}}{\textbf{\textsc{papers}}}
\creflabelformat{listofpapersc}{#2\textbf{\textsc{#1}}#3}
\DeclareFloatingEnvironment[within=none]{tableP1}
\crefformat{tableP1}{\textsc{#2tab.~#1#3}~of\space\cref{P1}}
\Crefformat{tableP1}{\textsc{#2Tab.~#1#3}~of\space\cref{P1}}
\crefrangeformat{tableP1}{\textsc{tabs.~#3#1#4--#5#2#6}~of\space\cref{P1}}
\Crefrangeformat{tableP1}{\textsc{Tabs.~#3#1#4--#5#2#6}~of\space\cref{P1}}
\crefmultiformat{tableP1}{%
\scshape tabs.~#2#1#3}{%
\:\&\:#2#1#3~\textnormal{of\space}\cref{P1}}{%
, #2#1#3}{%
\:\&\:#2#1#3~\textnormal{of\space}\cref{P1}}
\Crefmultiformat{tableP1}{%
\scshape Tabs.~#2#1#3}{%
\:\&\:#2#1#3~\textnormal{of\space}\cref{P1}}{%
, #2#1#3}{%
\:\&\:#2#1#3~\textnormal{of\space}\cref{P1}}
\crefrangemultiformat{tableP1}{%
\scshape tabs.~#3#1#4--#5#2#6}{%
\:\&\:#3#1#4--#5#2#6~\textnormal{of\space}\cref{P1}}{%
, #3#1#4--#5#2#6}{%
\:\&\:#3#1#4--#5#2#6~\textnormal{of\space}\cref{P1}}
\Crefrangemultiformat{tableP1}{%
\scshape Tabs.~#3#1#4--#5#2#6}{%
\:\&\:#3#1#4--#5#2#6~\textnormal{of\space}\cref{P1}}{%
, #3#1#4--#5#2#6}{%
\:\&\:#3#1#4--#5#2#6~\textnormal{of\space}\cref{P1}}
and repeat the last block (everything down from DeclareFloatingEnvironment
) for figureP1
, and for tableP2
, figureP2
, etc.
And then, for the pièce de résistance, in one fell swoop we abuse both the listofpapers
environment and the phantomcaption
command to create the label
s that our cross-references will target:
\begin{listofpapers}
\item\label{P1}
Li, C.; Ahmed, T.; Ma, M.; Edvinsson, T.; Zhu, J. %
Photocatalytic properties of ZnO/CdS nanoarrays\\%
\bgroup
\captionsetup{type=figureP2}
\phantomcaption\label{fig:P1-schematic}
\phantomcaption\label{fig:P1-mechanism}
[... more figure labels as necessary ...]
\egroup
\bgroup
\captionsetup{type=tableP2}
\phantomcaption\label{tab:P1-parameters}
\phantomcaption\label{tab:P1-rates}
[... more table labels as necessary ...]
\egroup
\item \label{P2}
Ahmed, T.; Edvinsson, T. %
Photocatalytic activity of ultrasmall ZnO\\%
\end{listofpapers}
captionsetup
needs to be constrained by an environment (the manual suggests a minipage, which works fine but occupies a little bit of vertical space on the page), and it turns out group
works in this context and has the added benefit of occupying no space in the List of Papers.
With that, we can simply type \cref{fig:P1-schematic}
in the source to produce a nicely formatted cross-reference in the output document. The use of small-caps, abbreviated label names, and the trailing of paper X is my way to make these references contrast with the normal, in-thesis cross-references.
Here's an example of how the typeset cross-references look like:
A work in progress. Over 700 pages, encompassing band structure, symmetry and much more.
By Daniel Arovas, UC Santa Barbara.
Lectures on theoretical physics from Cambridge University professor David Tong.
David Tong at Cambridge is a gifted educator and communicator who has written lecture notes that span a wide swath of the physics curriculum, from introductory material on mechanics through advanced graduate-level treatments of quantum field theory. Truly, these are a fantastic resource, made freely available.
Link and quote thanks to Douglas Natelson (nanoscale views).
I particularly like his notes on solid state physics (which contains links to other resources).
but more work remains to be done.
Good resources:
EU Hydrogen Important Project of Common European Interest, also called IPCEI
https://www.hydrogen4climateaction.eu/ipcei-on-hydrogen
The Rashid Al Maktoum Solar Park project is intended to be expanded to a 5 GW capacity
using proton exchange membrane electrolysis
The company did not reveal further technical and financial details on the project.
Mälardalens högskola är projektledare, med Kärrbo prästgård, Solkompaniet och SLU som partners i projektet, som har finansiering från Energimyndigheten.
Vätgas är vår idag vanligaste industrigas i antalet användningsområden. Den används inom många olika sektorer – som råvara i många olika processer för att skapa många olika slutprodukter, som drivmedel, som energibärare för att lagra energi, i vissa fall även under längre tid.
https://www.vatgas.se/2021/04/22/sverige-staller-om-med-hjalp-av-vatgas/
Egypt's largest private solar power plant.
The new Kom Ombo plant will be located less than 20 km from Africa’s biggest solar park, the 1.8 GW Benban complex.
Sveriges äldsta nätanslutna solcellsanläggning fyllde 36 år i oktober 2020
The Australia-Asia PowerLink project (Sun Cable's AAPowerLink)
Proposed project.
It's dwarfed by the proposed project in western Australia.
Tekniska verken i Linköping och Linköpings kommun undersöker nu förutsättningarna för en eventuell anslutning till Nordic Hydrogen Corridor. Kommunen blir därmed den fjärde av åtta städer i landet, som visat intresse för att kvalificera sig som nod i en EU-finansierad vätgaskorridor mellan de nordiska huvudstäderna.
https://intercontinentalenergy.com/announcements/WGEH-PressRelease-20210713.pdf
Any reversible physical process is an energy storage technology.
An interesting take from Technology Connections.
In this one, he reminds us that simple management of heat in our homes can amount to a simple and immediately available method to distribute energy use from the hours of peak demand.
Crooked Timber says: "energy storage is a solvable problem [...] concerns about the variability of wind and solar power will come to nothing in the end".
Moving rocks up and down former mine shafts could be a workable energy storage system.
I liked some quotes in this article:
If you are going to teach science, you must give it in a historical context: you must stress how our current knowledge is the accumulation of course corrections. You must stress how it is a work in progress.
Given that science is fundamentally subversive, how could it emerge and survive? I believe that scientific thinking is part of a broader ideology that gives its bearers an evolutionary edge. Simply put, societies that make room for science have an edge. They build and deploy better technology. They adapt more quickly to change.
The European Clean Hydrogen Alliance brings together industry, national and local public authorities, civil society and other stakeholders. It is strongly anchored in the hydrogen value chain, covering renewable and low-carbon hydrogen from production via transmission to mobility, industry, energy, and heating applications.
Via @sunergy_eu
The National Hydrogen Strategy, PDF (English)
Wärtsilä has modelled 145 countries and regions to find the optimal way to produce electricity from 100% renewable energy sources. The map illustrates how the power system of each of these regions would look like if they were to be optimally built from scratch, not considering the burden of existing power plants.
Nicely done interactive map, and quite fun to explore.
The optimisations presented in this map were calculated using a proprietary tool, but carried out in collaboration between Wärtsilä and LUT University's solar research group under the direction of professor of solar economy Christian Breyer.
Not sure if the data itself is published anywhere. Don't know why several outlets label this map "open access". Interactive, yes, openly accessible on the web, yes, but by that measure most any website would count as "open access".
The optimal capacity and energy mix are defined using a power system optimisation tool Plexos, which is a commercially used software developed by Energy Exemplar. Technologies and their parameters (costs, efficiencies, technical lifetime etc.) and conditions of each region (renewable profiles, load profiles etc.) are given to the software, after which the optimisation algorithm calculates the mix of technologies which provide the lowest cost for each region, but can still manage to serve energy demand reliably every hour of the year. We have used representative region-specific renewable profiles. For reliability purposes the system in both scenarios has been designed to sustain up to three consecutive days of low renewable production.
It's interesting to see how the Wärtsilä PR department has clearly been spreading the word around. News of this Atlas via
News of the research agreement via
How interconnections between national grids facilitate more renewable energy generation capacity.