13

I teach classes and in my notes I have "Fall 2015" during fall semester and "Spring 2016" during Spring semester. I can use

\the\year

for the year. But is there something like

\the\season

for Fall and Spring? And if so, how can I customize which months define the semester?

Xu Wang
  • 1,239
  • year is a count register, but season is a range of counter values actually –  Feb 12 '16 at 19:22
  • 4
    Of course, all this breaks down if you want to get ahead of things and produce some notes for spring term in December, for instance. Seems that something like \newcommand\term{Spring 2015} is simple and easily changed for next term. Sometimes over-automation creates more work than it alleviates. – dedded Feb 12 '16 at 20:46

5 Answers5

15

Without any extra package and providing support for northern or southern hemisphere:

\documentclass{article}

\newif\ifnorthernhemisphere
\northernhemispheretrue

\newcommand{\season}{%
  \ifnorthernhemisphere
  \ifcase\month
  \or Winter
  \or Winter
  \or Spring
  \or Spring
  \or Spring
  \or Summer
  \or Summer
  \or Summer
  \or Fall
  \or Fall
  \or Fall
  \or Winter
  \fi
  \else
  \ifcase\month
  \or Summer
  \or Summer
  \or Fall
  \or Fall
  \or Fall
  \or Winter
  \or Winter
  \or Winter
  \or Spring
  \or Spring
  \or Spring
  \or Summer
  \fi
  \fi
}



\begin{document}
Northern hemisphere

\the\month\ \season

\month=5
\the\month\ \season

\month=9
\the\month\ \season

Southern hemisphere

\month=2
\northernhemispherefalse
\the\month\ \season


\month=5
\the\month\ \season

\month=9
\the\month\ \season

\end{document}

enter image description here

Update Here's a variant with optional argument:

\documentclass{article}

\newif\ifnorthernhemisphere
\northernhemispheretrue

\newcommand{\season}[1][\month]{%
  \ifnorthernhemisphere
  \ifcase#1
  \or Winter
  \or Winter
  \or Spring
  \or Spring
  \or Spring
  \or Summer
  \or Summer
  \or Summer
  \or Fall
  \or Fall
  \or Fall
  \or Winter
  \fi
  \else
  \ifcase#1
  \or Summer
  \or Summer
  \or Fall
  \or Fall
  \or Fall
  \or Winter
  \or Winter
  \or Winter
  \or Spring
  \or Spring
  \or Spring
  \or Summer
  \fi
  \fi
}



\begin{document}
Northern hemisphere

\season


\season[5]


\season[9]

Southern hemisphere


\northernhemispherefalse
\season

\season[5]

\season[9]

\end{document}

**Another version -- with xparse and expl3 features:

\documentclass{article}


\usepackage{xparse}

\ExplSyntaxOn

\seq_new:N \g_default_spring_semester_seq
\seq_new:N \g_default_fall_semester_seq

\seq_new:N \g_spring_semester_seq
\seq_new:N \g_fall_semester_seq

\seq_set_from_clist:Nn \g_default_spring_semester_seq {1,2,3,4,5,6}

\NewDocumentCommand{\SetSpringSemesterMonths}{m}{%
  \seq_set_from_clist:Nn \g_spring_semester_seq {#1}
}

\NewDocumentCommand{\SetFallSemesterMonths}{m}{%
  \seq_set_from_clist:Nn \g_fall_semester_seq {#1}
}

\SetSpringSemesterMonths{1,2,3,4,5,6}
\SetFallSemesterMonths{7,8,9,10,11,12}

\NewDocumentCommand{\season}{}{%
  \seq_if_empty:NTF \g_spring_semester_seq 
  {\seq_set_eq:NN \l_tmpa_seq \g_default_spring_semester_seq}
  {\seq_set_eq:NN \l_tmpa_seq \g_spring_semester_seq}
  \seq_if_empty:NTF \g_fall_semester_seq {\seq_set_eq:NN \l_tmpb_seq \g_default_fall_semester_seq}
  {\seq_set_eq:NN \l_tmpb_seq \g_fall_semester_seq}
  \seq_if_in:NVTF \l_tmpa_seq {\month} {
    Spring%
  }{%
    \seq_if_in:NVTF \l_tmpb_seq {\month} {%
      Fall%
    }{}
  }
}

\ExplSyntaxOff

\begin{document}

\season

\end{document}
  • 1
    Nice. Now with shell-escape and using https://pleasefeedthegeek.wordpress.com/2012/05/09/geolocation-lookups-in-linux-ubuntu/ you can automate it ;-) /me ducks – Rmano Feb 12 '16 at 19:34
  • @Rmano: Well, let us not to be sophisticated ;-) –  Feb 12 '16 at 19:40
10

Here is a solution

\documentclass{article}
\begin{document}
\ifnum\month<7
Spring
\else
Fall
\fi

\month=11
\ifnum\month<7
Spring
\else
Fall
\fi
\end{document}
touhami
  • 19,520
9

Update: Crazier code, no properties list! :)

\documentclass{article}

\usepackage{xparse}

\ExplSyntaxOn
\clist_new:N \g_season_clist
\bool_new:N \g_season_northenhemisphere_bool
\bool_gset_false:N \g_season_northenhemisphere_bool

\NewDocumentCommand { \getseason } { m } {
   \clist_item:Nn \g_season_clist {
    \int_mod:nn {
      \int_div_round:nn { #1 - 1 } { 3 } + \bool_if:NTF \g_season_northenhemisphere_bool { 3 } { 1 } 
    } { 4 } + 1
  }
}

\NewDocumentCommand { \setseasons } { m } {
  \clist_gset:Nn \g_season_clist { #1 }
}

\NewDocumentCommand { \northenhemisphere } { } {
  \bool_gset_true:N \g_season_northenhemisphere_bool
}

\NewDocumentCommand { \southernhemisphere } { } {
  \bool_gset_false:N \g_season_northenhemisphere_bool
}
\ExplSyntaxOff

\begin{document}

\setseasons{Spring,Summer,Fall,Winter}

\northenhemisphere
In the Northen Hemisphere, we have \getseason{\month}.

\southernhemisphere
In the Southern Hemisphere, we have \getseason{\month}.

\end{document}

Original attempt: Crazy code ahead! :)

\documentclass{article}

\usepackage{xparse}

\ExplSyntaxOn
\clist_new:N \g_season_clist
\prop_new:N \g_season_prop

\prop_gput:Nnn \g_season_prop { 12 } { 4 }
\prop_gput:Nnn \g_season_prop { 1 } { 4 }
\prop_gput:Nnn \g_season_prop { 2 } { 4 }
\prop_gput:Nnn \g_season_prop { 3 } { 1 }
\prop_gput:Nnn \g_season_prop { 4 } { 1 }
\prop_gput:Nnn \g_season_prop { 5 } { 1 }
\prop_gput:Nnn \g_season_prop { 6 } { 2 }
\prop_gput:Nnn \g_season_prop { 7 } { 2 }
\prop_gput:Nnn \g_season_prop { 8 } { 2 }
\prop_gput:Nnn \g_season_prop { 9 } { 3 }
\prop_gput:Nnn \g_season_prop { 10 } { 3 }
\prop_gput:Nnn \g_season_prop { 11 } { 3 }

\bool_new:N \g_season_northenhemisphere_bool
\bool_gset_false:N \g_season_northenhemisphere_bool

\NewDocumentCommand { \getseason } { m } {
   \clist_item:Nn \g_season_clist {
    \int_mod:nn {
      \prop_item:Nn \g_season_prop { #1 } + \bool_if:NTF \g_season_northenhemisphere_bool { 3 } { 1 } 
    } { 4 } + 1
  }
}

\NewDocumentCommand { \setseasons } { m } {
  \clist_gset:Nn \g_season_clist { #1 }
}

\NewDocumentCommand { \northenhemisphere } { } {
  \bool_gset_true:N \g_season_northenhemisphere_bool
}

\NewDocumentCommand { \southernhemisphere } { } {
  \bool_gset_false:N \g_season_northenhemisphere_bool
}
\ExplSyntaxOff

\begin{document}

\setseasons{Spring,Summer,Fall,Winter}

\northenhemisphere
In the Northen Hemisphere, we have \getseason{\month}.

\southernhemisphere
In the Southern Hemisphere, we have \getseason{\month}.

\end{document}

The output:

Quack

One could add a babel hook to setup seasons names according to the current language or even use datetime to format any date, like, for example, \season\today. Hope it helps! :)

Paulo Cereda
  • 44,220
8

What about:

\documentclass{article}
\usepackage{ifthen}

\begin{document}

The term now is: \ifthenelse{\month<6}{Spring}{Fall} 

\end{document}

With the ifthen package you can build quite complex conditional text.

Obviously you have to adapt it to your case, but you can nest \ifthenelse and even use \month or \day in it to fine-tune the result.

The term now is: \ifthenelse{\month<9}{%
    \ifthenelse{\month<6}{Spring}{Summer}}%
    {Fall}

(this last suppose Spring term for Jan to May, Fall from Sep to Dec, and the rest Summer. YMMV)

Rmano
  • 40,848
  • 3
  • 64
  • 125
  • The problem is that the spring occurs in different months in North/South hemisphere. – Sigur Feb 12 '16 at 19:24
  • 2
    @Sigur: That's hard to track from LaTeX unless there are geolocation tools in LaTeX ;-) –  Feb 12 '16 at 19:27
  • @ChristianHupfer And what about TeX? You used TeX primitives in your answer, this has no connection to LaTeX. – wipet Feb 12 '16 at 19:36
  • @wipet: Fair point. I know, you find LaTeX horrible, especially mixing TeX and LaTeX, but in this case I found TeX much simpler. If I would kick out the LaTeX specific commands it would work with TeX too, I suppose –  Feb 12 '16 at 19:43
  • The title only asks for this two mode output, but your test should be month<7. – Andrew Swann Feb 17 '16 at 08:08
1

A biblatex solution, for when there are multiple or archival items.

season

Treating the season as part of the publication (meta)data.

Localisation can also come into play. (Note that not all babel/polyglossia languages define season-related strings (yet).)

MWE

\begin{filecontents*}[overwrite]{\jobname.bib}

@misc{notesset1, title = {Lecture Notes Set 1}, date = {2020-23}, } % season (21=spring, 22=summer, 23=autumn, 24=winter)

@misc{notesset2, title = {Lecture Notes Set 2}, date = {2021-21}, }

@misc{notesset3, title = {Lecture Notes Set 3}, date = {2021-22}, }

@misc{notesset4, title = {Lektur 1}, date = {2021-22}, langid = {ngerman}, % language={langgerman}, }

@misc{notesset5, title = {Διάλεξη 1}, date = {2021-22}, langid = {greek}, language={langgreek}, }

@misc{notesset5a, title = {Conferenza 1}, date = {2021-22}, langid = {italian}, language={langitalian}, }

\end{filecontents*}

\documentclass[12pt]{article} \usepackage[english]{babel} \usepackage{csquotes} \usepackage[svgnames]{xcolor} \usepackage{fontspec} \babelprovide[import, onchar=ids fonts]{greek} \babelfont[greek]{rm} [Color=DarkGreen , ]{Noto Serif}

\usepackage[style=authoryear, dateabbrev=false,% full name of season language=autocite,%pick up the langid language, for citations autolang=other,%wrap with otherlanguage environment and translate date-related names according to the langid ]{biblatex}

\addbibresource{\jobname.bib}

\DeclareListFormat{language}{\ifbibstring{#1}{\bibstring{#1}\addcolon}{#1}}

\DeclareCiteCommand{\citeseasonall} {} {\textmd{\printlist{language}} \printfield{title}\addcomma\addspace\printdate} {} {}

\DeclareCiteCommand{\citeseasontitle} {} {\printfield{title} } {} {}

\DeclareCiteCommand{\citeseason} {} {\printdate} {} {}

\DefineBibliographyStrings{greek}{% spring = {άνοιξη}, summer = {καλοκαίρι}, autumn = {φθινόπωρο}, winter = {χειμώνας}, langgreek = {Ελληνικά}, }

\DefineBibliographyStrings{italian}{% spring = {primavera}, summer = {estate}, autumn = {autunno}, winter = {inverno}, langitalian = {italiano}, }

%-----------------------------

\title{\citeseasontitle{notesset1}} \author{} \date{\citeseason{notesset1}} %------------------ \begin{document} \maketitle

\section*{Overview} \begin{itemize} \item \textbf{\citeseasonall{notesset1}} covers introductory material. \item \textbf{\citeseasonall{notesset2}} advances to the next topic. \item \textbf{\citeseasonall{notesset3}} covers the extended course. \item German: \textbf{\citeseasonall{notesset4}} is the xyz version. \item Greek: \textbf{\citeseasonall{notesset5}} is the abc version. \item Italian: \textbf{\citeseasonall{notesset5a}} is the abc version. \end{itemize} \end{document}


Automating

A more generalised solution, using a custom code number.

Biber can do the four seasons using the date field when the month is set to certain values:

  my %
    seasons = ( 21 => 'spring',
                  22 => 'summer',
                  23 => 'autumn',
                  24 => 'winter' );

...\texlive\2020 \texmf-dist \source \bibtex \biber \biblatex-biber.tar \biblatex-biber \biblatex-biber-2.15 \lib \Biber \Date
format.pm

Extending that idea, but using instead a custom field (term) processed via macros at Biblatex/Latex-level, University Terms and Court Terms can be done:

Example formats

Illustrating the use of the xsv field type and associated \forcsvfield command, allowing customised sequencing of fields on a per-bibentry basis (and the expl3 split function); and formatting hooks within the citation command, allowing the changing of the citation format mid-document; and bibstrings for localisation. Plus an example of using a field as an input argument to arbitrary code using \usefield (here, an image name).

An exercise in what could be done.

Use-case: sets or compendia, or other bulk volumes?

Terms can always be keyed in manually if there are only a few, or the issue field of @article could be used.

MWE


\begin{filecontents*}[overwrite]{\jobname.bib}

@misc{notesset1, title = {Lecture Notes Set 1}, date = {2020-23}, } % season (21=spring, 22=summer, 23=autumn, 24=winter)

@misc{notesset2, title = {Lecture Notes Set 2}, date = {2021-21}, }

@misc{notesset3, title = {Lecture Notes Set 3}, date = {2021-22}, }

@misc{notesset4, title = {Lektur 1}, date = {2021-22}, langid = {ngerman}, % language={langgerman}, }

@misc{notesset5, title = {Διάλεξη 1}, date = {2021-22}, langid = {greek}, language={langgreek}, }

@misc{notesset5a, title = {Conferenza 1}, date = {2021-22}, langid = {italian}, language={langitalian}, }
@misc{testutag, title = {Test Titleuta Greek 31}, term = {2021-31}, langid = {greek}, % language={langgreek}, }

@misc{testutha, title = {Test Titleut hilary}, term = {2021-hilaryterm}, }
@misc{testuta, title = {Test Titleuta 31}, term = {2021-31}, author = {A Author}, authorposition = {Adjunct Professor of Theoretics}, university = {University of U}, college = {College of C}, school = {School of S}, faculty = {Faculty of F}, department = {Department of D}, location = {Mars and The Moon and Mimas}, image={example-image-a}, sequence = {department,faculty,university,location,image}, sequenceta = {title,term,author,authorposition}, }

@misc{testutb, title = {Test Titleutb 32}, term = {2021-32}, author = {zz}, authorposition = {zz}, university = {University of V}, college = {College of D}, school = {School of T}, faculty = {Faculty of G}, department = {Department of E}, sequence = {department,college,university}, }
@misc{testutc, title = {Test Titleutc 33}, term = {2021-33}, courtlist = {Civil List}, courtdivision = {Commercial Division}, courtcourt = {Court of Appeal}, % courtbench = {}, courtname = {Supreme Court of XYZ}, sequence = {courtlist,courtdivision,courtname}, }
@misc{testutd, title = {Test Titleutd 34}, term = {2021-34}, % courtlist = {}, % courtdivision = {}, % courtcourt = {}, courtbench = {Full Court}, courtname = {Supreme Court of XYZ}, sequence = {courtbench,courtname}, }
@misc{testute, title = {Test Titleute 35}, term = {2021-35}, }
@misc{testutf, title = {Test Titleutf 36}, term = {2021-36}, }
@misc{testutg, title = {Test Titleutg 37}, term = {2021-37}, }

@misc{testta, title = {Test Titleta 41}, term = {2021-41}, }
@misc{testtb, title = {Test Titletb 42}, term = {2021-42}, }
@misc{testtc, title = {Test Titletc 43}, term = {2021-43}, }

@misc{testsa, title = {Test Titlesema 51}, term = {2021-51}, }
@misc{testsb, title = {Test Titlesemb 52}, term = {2021-52}, }
@misc{tests1, title = {Test Titlesem1 53}, term = {2021-53}, }
@misc{tests2, title = {Test Titlesem2 54}, term = {2021-54}, }

@misc{testsp, title = {Test Titlesp 61}, term = {2021-61}, }
@misc{testsu, title = {Test Titlesu 62}, term = {2021/2022-62}, }
@misc{testau, title = {Test Titleau 63}, term = {2022-63}, }
@misc{testwi, title = {Test Titlewi 64}, term = {2022-64}, }
\end{filecontents*}

\begin{filecontents*}[overwrite]{term.dbx}

\DeclareDatamodelFields[type=field, datatype=literal]{term, authorposition, university, college, school, faculty, department, courtlist, courtdivision, courtcourt, courtname, courtbench,
image, }

\DeclareDatamodelFields[type=field, format=xsv, datatype=literal]{sequence, sequenceta, }

%\DeclareDatamodelFields[type=list, datatype=literal]{location, %}

\DeclareDatamodelEntryfields{term, authorposition, university, college, school, faculty, department, sequence, courtlist, courtdivision, courtcourt, courtname, courtbench, sequenceta, % location, image, }

\end{filecontents*}

\documentclass[12pt]{article} \usepackage[english]{babel} \usepackage{csquotes} \usepackage[svgnames]{xcolor} \usepackage{fontspec} \babelprovide[import, onchar=ids fonts]{greek} \babelfont[greek]{rm} [Color=DarkGreen , ]{Noto Serif}

\usepackage{xparse} \usepackage{graphicx}

\ExplSyntaxOn

%term \DeclareDocumentCommand { \fcompareb } { m } { \tl_set:Nn \l_my_tl { #1 } \seq_set_split:NnV \l_tmpa_seq { - } \l_my_tl \seq_get_right:NN \l_tmpa_seq \l_myright_tlv \int_compare:nNnT { \l_myright_tlv } = { 31 } { \bibstring{hilaryterm} } \int_compare:nNnT { \l_myright_tlv } = { 32 } { \bibstring{epiphanyterm} } \int_compare:nNnT { \l_myright_tlv } = { 33 } { \bibstring{lentterm} } \int_compare:nNnT { \l_myright_tlv } = { 34 } { \bibstring{candlemasterm} } \int_compare:nNnT { \l_myright_tlv } = { 35 } { \bibstring{easterterm} } \int_compare:nNnT { \l_myright_tlv } = { 36 } { \bibstring{trinityterm} } \int_compare:nNnT { \l_myright_tlv } = { 37 } { \bibstring{michaelmasterm} } \int_compare:nNnT { \l_myright_tlv } = { 41 } { \bibstring{firstterm} } \int_compare:nNnT { \l_myright_tlv } = { 42 } { \bibstring{secondterm} } \int_compare:nNnT { \l_myright_tlv } = { 43 } { \bibstring{thirdterm} } \int_compare:nNnT { \l_myright_tlv } = { 51 } { \bibstring{firstsemester} } \int_compare:nNnT { \l_myright_tlv } = { 52 } { \bibstring{secondsemester} } \int_compare:nNnT { \l_myright_tlv } = { 53 } { \bibstring{semesterone} } \int_compare:nNnT { \l_myright_tlv } = { 54 } { \bibstring{semestertwo} } \int_compare:nNnT { \l_myright_tlv } = { 61 } { \bibstring{springterm} } \int_compare:nNnT { \l_myright_tlv } = { 62 } { \bibstring{summerterm} } \int_compare:nNnT { \l_myright_tlv } = { 63 } { \bibstring{autumnterm} } \int_compare:nNnT { \l_myright_tlv } = { 64 } { \bibstring{winterterm} } }

%year \DeclareDocumentCommand { \fcomparec } { m } { \tl_set:Nn \l_my_tl { #1 } \seq_set_split:NnV \l_tmpa_seq { - } \l_my_tl \seq_get_left:NN \l_tmpa_seq \l_myleft_tlv \tl_use:N \l_myleft_tlv

}

\ExplSyntaxOff

\usepackage[style=authoryear, dateabbrev=false,% full name of season language=autocite,%pick up the langid language, for citations autolang=other,%wrap with otherlanguage environment and translate date-related names according to the langid datamodel=term, ]{biblatex}

\NewBibliographyString{hilaryterm, epiphanyterm, lentterm, candlemasterm, easterterm, trinityterm, michaelmasterm, firstterm, secondterm, thirdterm, firstsemester, secondsemester, semesterone, semestertwo, springterm, summerterm, autumnterm, winterterm, }

\DefineBibliographyStrings{english}{% % 30 hilaryterm = {Hilary Term},% jan-mar/apr epiphanyterm = {Epiphany Term}, lentterm = {Lent Term},%feb-apr candlemasterm = {Candlemas Term}, easterterm = {Easter Term},%apr-may trinityterm = {Trinity Term},% apr-jun/jun-jul michaelmasterm = {Michaelmas Term},% oct-dec % 40 firstterm = {First Term}, secondterm = {Second Term}, thirdterm = {Third Term}, % 50 firstsemester = {First Semester}, secondsemester = {Second Semester}, semesterone = {Semester One}, semestertwo = {Semester Two}, % 60 springterm = {Spring Term}, summerterm = {Summer Term}, autumnterm = {Autumn Term}, winterterm = {Winter Term}, }

\addbibresource{\jobname.bib}

\newcommand\insertpic[1]{\includegraphics[width=1cm]{#1}}

%============================== \newcommand\seqsep{\addcomma\addspace} \newcommand\myseq[1]{\seqsep% \ifstrequal{#1}{location}{\printlist{location}}{% \ifstrequal{#1}{author}{\printnames[authorrev]{#1}}{% \ifstrequal{#1}{image}{\usefield{\insertpic}{image}}{%\usefield{\includegraphics[scale=0.1]}{image} \ifstrequal{#1}{term}{\printterm}{\printfield{#1}}% }}}% }

\DeclareFieldFormat{sequence}{ \forcsvfield{\myseq}{sequence} }
% \newcounter{seqtacounter} \newcommand\seqtazero{\setcounter{seqtacounter}{0}} \newcommand\seqtastep{\stepcounter{seqtacounter}}

%title author \newcommand\seqsepta{\addcomma\addspace}

\newcommand\myseqta[1]{% \seqtastep% \ifnum\value{seqtacounter}=1\relax\else\seqsepta\fi% \ifstrequal{#1}{location}{\printlist{location}}{}% \ifstrequal{#1}{author}{\printnames[authorrev]{#1}}{}% \ifstrequal{#1}{term}{\printterm}{\printfield{#1}}% }

\DeclareFieldFormat{sequenceta}{ \seqtazero \forcsvfield{\myseqta}{sequenceta} }

% \DeclareListFormat{language}{\ifbibstring{#1}{\bibstring{#1}\addcolon}{#1}}

\DeclareCiteCommand{\citeseasonall} {} {\textmd{\printlist{language}} \printfield{title}\addcomma\addspace \printdate} {} {}

\newcommand\uuformat[1]{#1} \newcommand\cuformat[1]{#1} \newcommand\suformat[1]{#1} \newcommand\fuformat[1]{#1} \newcommand\duformat[1]{#1}

\newcommand\postuuformat{} \newcommand\postcuformat{} \newcommand\postsuformat{} \newcommand\postfuformat{} \newcommand\postduformat{}

% courtlist, % courtdivision, % courtcourt, % courtname, % courtbench, \newcommand\lcformat[1]{#1} \newcommand\dcformat[1]{#1} \newcommand\ccformat[1]{#1} \newcommand\ncformat[1]{#1} \newcommand\bcformat[1]{#1}

\newcommand\postlcformat[1]{#1} \newcommand\postdcformat[1]{#1} \newcommand\postccformat[1]{#1} \newcommand\postncformat[1]{#1} \newcommand\postbcformat[1]{#1}

\DeclareFieldFormat{plain}{#1} \DeclareFieldFormat{plainb}{\fcompareb{#1}} \DeclareFieldFormat{plainc}{\fcomparec{#1}} \DeclareFieldFormat{authorposition}{#1}

\DeclareFieldFormat{university}{\uuformat{#1}\postuuformat} \DeclareFieldFormat{college}{\cuformat{#1}\postcuformat} \DeclareFieldFormat{school}{\suformat{#1}\postsuformat} \DeclareFieldFormat{faculty}{\fuformat{#1}\postfuformat} \DeclareFieldFormat{department}{\duformat{#1}\postduformat}

% % courtlist, % courtdivision, % courtcourt, % courtname, % courtbench, \DeclareFieldFormat{courtlist}{\lcformat{#1}\postlcformat} \DeclareFieldFormat{courtdivision}{\dcformat{#1}\postdcformat} \DeclareFieldFormat{courtcourt}{\ccformat{#1}\postccformat} \DeclareFieldFormat{courtname}{\ncformat{#1}\postncformat} \DeclareFieldFormat{courtbench}{\bcformat{#1}\postbcformat}

\newcommand\printterm{\seqsepta\printfield[plainb]{term} \addcomma\addspace\printfield[plainc]{term}}

\DeclareNameFormat{authorrev}{% \ifthenelse{\value{listcount}=1} {\ifdefvoid{\namepartgiven}{}{% \namepartgiven\space}\namepartfamily}% {\ifdefvoid{\namepartgiven}{}{\namepartgiven\space }% \namepartfamily}% \ifthenelse{\value{listcount}<\value{liststop}} {\addcomma\space} {}}

\DeclareCiteCommand{\citeseasonallx} {} {\textmd{\printlist{language}}% \iffieldundef{sequenceta}{%true \printfield{title}% \iffieldundef{term}{}{% \printterm}}{%false \printfield{sequenceta}% }% \iffieldundef{sequence}{}{\printfield{sequence}} } {} {}

\DeclareCiteCommand{\citeseasontitle} {} {\printfield{title} } {} {}

\DeclareCiteCommand{\citeseason} {} {\printdate} {} {}

\DeclareCiteCommand{\citeseasonterm} {} {\printfield[plainb]{term}} {} {}

\DeclareCiteCommand{\citeseasontermyear} {} {\printfield[plainc]{term}} {} {}

\DefineBibliographyStrings{greek}{% spring = {άνοιξη}, summer = {καλοκαίρι}, autumn = {φθινόπωρο}, winter = {χειμώνας}, langgreek = {Ελληνικά}, hilaryterm = {Ελληνικά Greek Hilary}, }

\DefineBibliographyStrings{italian}{% spring = {primavera}, summer = {estate}, autumn = {autunno}, winter = {inverno}, langitalian = {italiano}, }

%-----------------------------

\title{\citeseasontitle{notesset1}} \author{} \date{\citeseason{notesset1}} %------------------ \begin{document} \maketitle

\section*{Overview} \begin{itemize} \item \textbf{\citeseasonall{notesset1}} covers introductory material. \item \textbf{\citeseasonall{notesset2}} advances to the next topic. \item \textbf{\citeseasonall{notesset3}} covers the extended course. \item German: \textbf{\citeseasonall{notesset4}} is the xyz version. \item Greek: \textbf{\citeseasonall{notesset5}} is the abc version. \item Italian: \textbf{\citeseasonall{notesset5a}} is the abc version. \end{itemize}

\section{Season Extended} \subsection{University Terms and Court Terms} %\citeseasonallx{testutha}\par \citeseasonallx{testuta}. \citeseasonterm{testuta} of \citeseasontermyear{testuta} will see a new\ldots\par % \renewcommand\seqsep{\ \ \makebox[2em]{\ }} \renewcommand\uuformat[1]{\textsc{#1}} \renewcommand\postuuformat{$\leftarrow$\par} \noindent\citeseasonallx{testutb} xxx\par \citeseasonallx{testutc}\par \citeseasonallx{testutd}\par \citeseasonallx{testute}\par \citeseasonallx{testutf}\par\ \citeseasonallx{testutg}\par \subsection{Semesters} \ \par \citeseasonallx{testsa}\par \citeseasonallx{testsb}\par \citeseasonallx{tests1}\par \citeseasonallx{tests2}\par \subsection{School Terms} \ \par \citeseasonallx{testta}, the \citeseasonterm{testta} of \citeseasontermyear{testta}\par \citeseasonallx{testtb}\par \citeseasonallx{testtc}\par \ \par \citeseasonallx{testsp}\par \citeseasonallx{testsu}\par \citeseasonallx{testau}\par \citeseasonallx{testwi}\par

\section*{Languages} \citeseasonallx{testutag}\par

%biber % %format.pm % %\begin{verbatim} % my % % seasons = ( 21 => 'spring', % 22 => 'summer', % 23 => 'autumn', % 24 => 'winter' ); %
%...\texlive\2020 %\texmf-dist %\source %\bibtex %\biber %\biblatex-biber.tar %\biblatex-biber %\biblatex-biber-2.15 %\lib %\Biber %\Date
%\end{verbatim}

\renewcommand\seqsepta{\par} \renewcommand\seqsep{\par} \renewcommand\uuformat[1]{$\rightarrow$\begin{tabular}{|l|}\hline\textsc{#1}\ \hline \end{tabular}} \renewcommand\postuuformat{}

\citeseasonallx{testuta}\par\bigskip \renewcommand\seqsepta{\addcomma\addspace} \renewcommand\seqsep{\addcomma\addspace} \renewcommand\uuformat[1]{#1} \citeseasonallx{testutb}

\end{document}

Compile with lualatex in a recent TexLive because babel uses lua code for language/script processing.

Cicada
  • 10,129