Für den folgenden:
\documentclass{article}
\usepackage{chronosys}
\catcode`\@=11
\def\chron@selectmonth#1{\ifcase#1\or January\or February\or March\or April\or%
May\or June\or July\or August\or September\or October\or November\or December\fi}
\begin{document}
\startchronology[startyear=15,stopyear=16]
\chronoevent{15/03/15}{Assassination of Caesar}
\stopchronology
\end{document}
Produziert:
Ist es überhaupt möglich, das Zeitleistenereignis im Format Monat, Tag, Jahr darzustellen, z. B. 15. März 2015?
Außerdem konnte ich diese Zeitleiste nicht so einrichten, dass sie die Jahre 2015 bis 2016 widerspiegelt. Stattdessen hänge ich anscheinend bei „15“ auf der einen Seite und „16“ auf der anderen fest.
Als ich es versucht habe, verwendete ich:
\startchronology[startyear=2015,stopyear=2016]
das Programm enthielt keinerlei chronologische Daten.
DerChronosys-Paketdokumentationschien mir nicht zu helfen.
Danke. Wenn ich aufgrund des Pakets selbst nicht mit dem/den Datumsformat(en) klarkomme, das/die ich derzeit habe, wäre ich für die Information dankbar.
Antwort1
Ich werde Ihr erstes Problem nicht kommentieren, da @JP-Ellis es bereits perfekt beantwortet hat. Aber den Code zu patchen, um das Datumsformat zu ändern, ist nicht so schwierig, obwohl der Code chronosys
etwas chaotisch ist. @JP-Ellis hat bereits die richtige Datei und Zeile herausgefunden, also hier ist ein Patch zum Ändern des Datumsformats.
\documentclass{article}
\usepackage{chronosys}
\usepackage{etoolbox}
\makeatletter\catcode`\!=11
\def\chron@selectmonth#1{\ifcase#1\or January\or February\or March\or April\or%
May\or June\or July\or August\or September\or October\or November\or December\fi}
\patchcmd{\dochronoevent}{%
\if!chreventdate\hbox to\z@{%
\hss \if!chreventifcolorbox \expandafter\!chreventcolorbox\fi
{\!chr@eventdatestyle{%
\if!chreventspecifiedday %
{\!chr@eventdatesstyle{\!chreventday}}\!chr@eventdatesseparation
\fi
{\!chr@eventdatesstyle{%
\if!chreventspecifiedmonth
\if!chreventconversionmonth\expandafter \chron@selectmonth
\fi
\!chreventmonth
\fi
}%
}%
\if!chreventspecifiedmonth\if!chreventyear \!chr@eventdatesseparation\fi\fi
\if!chreventyear{\!chr@eventdatesstyle{\!chreventyear}}\fi%
}}%
\hss
}%
\fi
}{%
\if!chreventdate\hbox to\z@{%
\hss \if!chreventifcolorbox \expandafter\!chreventcolorbox\fi
{\!chr@eventdatesstyle{%
\if!chreventspecifiedmonth
\if!chreventconversionmonth\expandafter\chron@selectmonth
\fi
\!chreventmonth\!chr@eventdatesseparation%
\fi
}%
{\!chr@eventdatestyle{%
\if!chreventspecifiedday%
{\!chr@eventdatesstyle{\!chreventday}},%
\fi%
}%
\if!chreventspecifiedmonth\if!chreventyear\!chr@eventdatesseparation\fi\fi
\if!chreventyear{\!chr@eventdatesstyle{\!chreventyear}}\fi%
}}%
\hss
}%
\fi
}{%
\message{Patching chronosys successful.}%
}{%
\message{Patching chronosys failed.}%
}
\makeatother
\begin{document}
\startchronology[startyear=2015,stopyear=2016]
\chronoevent{15/03/2015}{Assassination of Caesar}
\stopchronology
\end{document}
Ausgabe:
Antwort2
Wie ich im Kommentar oben erwähnt habe, scheint es schwierig zu sein, das Datum zu ändern, da chronosys
es keine Möglichkeit dafür zu bieten scheint. Daher besteht die einzige Möglichkeit darin, einen Teil des Pakets selbst zu ändern (soweit ich das beurteilen kann, beginnt die Ausgabe des Datums ungefähr bei Zeile 513 von chronosyschr.tex
, obwohl es mir unnötig kompliziert erscheint).
Dass die Ereignisse nicht angezeigt werden, scheint einfach daran zu liegen, dass das Paket ein volles Jahr erwartet, d. h., es geht davon aus, dass 15/03/2015
es andernfalls das Datum als das 15. Jahr registriert:
\documentclass{article}
\usepackage{chronosys}
\makeatletter
\def\chron@selectmonth#1{\ifcase#1\or January\or February\or March\or April\or%
May\or June\or July\or August\or September\or October\or November\or December\fi}
\begin{document}
\startchronology[startyear=2010,stopyear=2016]
\chronoevent{4/7/2012}{Discovery of the Higgs boson}
\stopchronology
\startchronology[startyear=10,stopyear=16]
\chronoevent{19/8/14}{Augustus, the first Roman emperor, dies and is declared to be a god}
\stopchronology
\end{document}
Antwort3
Weitere Informationen
chronos
finden Sie indiese Antwort.Die aktuelle Version von Chronos ist verfügbar unter:
https://tex.stackexchange.com/a/342699/ (06.12.2016)
Nun lässt sich dies etwas chronos
einfacher erledigen:
date format={ B d, Y},
Jedes Zeichen im Format wird entweder in ein Element des Datumsformats übersetzt oder unverändert weitergegeben. Dies schließt Satzzeichen und Leerzeichen ein. (Beachten Sie, dass Makros usw. hier nicht funktionieren, da das Makro zerlegt und Token für Token „übersetzt“ wird.)
Bei den Formatcodes handelt es sich größtenteils um eine Teilmenge der durch den GNU-Befehl bereitgestellten Formatcodes date
sowie um einige für GNU nicht relevante Extras.
a
kurzer Wochentagsname zBMon
A
vollständiger Wochentagsname zBMonday
b
kurzer Monatsname zBJan
B
vollständiger Monatsname zBJanuary
d
Tag des Monats zB23
E
Ära zBBCE
oderCE
m
Monatsnummer zB01
q
minus, wenn das Jahr v. Chr. istQ
minus, wenn das Jahr v. Chr. ist;y
die letzten beiden Ziffern des Jahres zB66
Y
Jahr zB1066
Im Grunde wird hierdurch der Code angepasst, der zum Setzen von Daten für Ereignisse verwendet wird. Eine abgespeckte Version dieses Formats ist auch verfügbar, um das Erscheinungsbild der Jahresbeschriftungen auf der Zeitleiste selbst anzupassen. Alternativ können an jedem Ende der Zeitleiste Epochenbeschriftungen hinzugefügt werden, um die Unordnung zu vermeiden, die durch die Einbeziehung CE
oder BCE
Angabe jedes Jahres entsteht.
Die Zeitleiste kann also wie folgt gesetzt werden:
\begin{tikzpicture}
[
chronos={%
start date=2015-01-01,
end date=2016-01-01,
timeline height=2.5mm,
timeline width=100mm,
timeline line={shorten >=-10mm, -{Triangle Cap[length=10mm]}},
timeline years=above,
date format={ B d, Y},
}
]
\chronosevent{2015-03-15}{Assassination of Caesar}
\end{tikzpicture}
produziert
Das Jahr Null ist standardmäßig nicht mehr vorhanden, kann aber bei Bedarf mithilfe von wiederhergestellt werden year zero
.