以下について:
\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}
生産:
タイムライン イベントを、たとえば 2015 年 3 月 15 日のように、月日、年の形式で表示することは可能ですか?
また、このタイムラインに 2015 年から 2016 年を反映させることができませんでした。代わりに、一方の端に「15」、もう一方の端に「16」が表示されたままになっているようです。
私がそれを試したとき:
\startchronology[startyear=2015,stopyear=2016]
プログラムには年表の日付がまったく反映されていませんでした。
のchronosys パッケージのドキュメント私にとっては、役に立たなかったようです。
ありがとうございます。パッケージ自体の都合で現在使用している日付形式にこだわるのであれば、その情報をいただければ幸いです。
答え1
最初の問題については、@JP-Ellis がすでに完璧に回答しているので、コメントしません。ただし、コードがchronosys
少し乱雑ではありますが、日付形式を変更するためにコードにパッチを当てるのはそれほど難しくありません。@JP-Ellis はすでに適切なファイルと行を見つけ出しているので、日付形式を変更するためのパッチを次に示します。
\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}
出力:
答え2
上のコメントで述べたように、日付を変更するのは困難であるように見えますchronosys
。 ではそれを行う方法が示されていないようです。 結果として、これを行う唯一の方法は、パッケージ自体の一部を変更することです (私の知る限り、日付の印刷は の 513 行目あたりから始まりますchronosyschr.tex
が、私には不必要に複雑に見えます)。
さて、イベントが表示されないのは、パッケージが 1 年を想定しているため、つまり、そう15/03/2015
でない場合は日付を 15 年として登録しているためであると思われます。
\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}
答え3
詳細は
chronos
以下をご覧ください。この答え。chronos の現在のバージョンは次の場所で入手できます:
https://tex.stackexchange.com/a/342699/ (2016-12-06)
価値あることとして、chronos
今ではこれをより簡単に実行できるようになりました。
date format={ B d, Y},
フォーマット内の各文字は、日付フォーマットの要素に変換されるか、そのまま渡されます。これには句読点とスペースが含まれます。(マクロはトークンごとに分解され、「変換」されるため、マクロなどはここでは機能しないことに注意してください。)
フォーマット コードは主に GNU のdate
コマンドによって提供されるフォーマット コードのサブセットであり、GNU に関連しないいくつかの追加機能があります。
a
短縮曜日名(例)Mon
A
曜日の完全な名前(例:Monday
b
月の短縮名(例)Jan
B
月の完全な名前(例)January
d
月の日付(例)23
E
時代 例えばBCE
またはCE
m
月番号 例01
q
紀元前の場合はマイナスQ
年が紀元前の場合はマイナス。y
年の下2桁(例)66
Y
年 例1066
基本的に、これはイベントの日付をタイプセットするために使用されるコードをカスタマイズします。この形式の縮小版も利用可能で、タイムライン自体の年ラベルの外観をカスタマイズできます。年ごとにCE
またはを含める煩雑さを避けるために、タイムラインの両端に年号ラベルを追加することもできますBCE
。
したがって、タイムラインは次のようにタイプセットできます。
\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}
生産する
デフォルトでは年ゼロは存在しなくなりましたが、必要に応じて を使用してこれを復元できますyear zero
。