私は論文を書いているのですが、過去の出来事の月と年をいろいろな場所で挿入したいと思っています。どうすればいいでしょうか? 一番簡単な方法を誰か教えてくれませんか? 私は LaTeX の初心者です。また、英語が下手で申し訳ありません。
これらのイベントはテキスト ファイルにリストされています。たとえば、超伝導は 1991 年 4 月に Heike Kamerlingh Onnes によって発見されました。
私は次のような形式の出力を期待しています
1991年4月
答え1
関連データを保存するマクロを定義するだけで済みます。たとえば、 を使用し\newcommand\questionDay{Monday}
てこの質問をした日を保存できます。 次に、\questionDay
段落内でこの日を参照したい場所で を使用できます。 ただし、マクロ名の後のスペースは無視されることに注意してください。 マクロ名の後にスペースを入れたい場合は、代わりに\questionDay
を使用できます\questionDay{}
。
別の方法としては、データを何らかのデータ構造に保存して、それを取得することもできます。次の例では、マクロ名と、key=value
このマクロ名のプロパティを保存するペアのリストを指定して初期化できるようなデータ構造を実装しています。その後、マクロを使用すると、マクロは、以前に保存したプロパティの 1 つである 1 つの引数を受け入れ、そのプロパティの値をタイプセットします。
この例では、両方の方法を示します。
\documentclass[]{article}
% basic approach
\newcommand\questionday{9th}
\newcommand\questionDay{Monday}
\newcommand\questionyear{2020}
\newcommand\questionmonth{November}
\usepackage{xparse}
% property list based approach
\ExplSyntaxOn
\msg_new:nnn { Bhargav } { already-defined }
{ #1 ~ `#2' ~ is ~ already ~ defined. }
\msg_new:nnn { Bhargav } { unknown~property }
{ The ~ property ~ `#2' ~ isn't ~ found ~ for ~ `#1'. }
\tl_new:N \l_Bhargav_tmp_tl
\NewDocumentCommand \newevent { m m }
{
\prop_if_exist:cTF { c_Bhargav_event_ \token_to_str:N #1 _prop }
{
\msg_error:nnxx { Bhargav } { already-defined }
{ The ~ property ~ list ~ for } { \token_to_str:N #1 }
}
{
\NewDocumentCommand #1 { m }
{
\group_begin:
\prop_get:cnN
{ c_Bhargav_event_ \token_to_str:N #1 _prop }
{ ##1 }
\l_Bhargav_tmp_tl
\quark_if_no_value:NTF \l_Bhargav_tmp_tl
{
\msg_error:nnxx { Bhargav } { unknown~property }
{ \token_to_str:N #1 } { \exp_not:n {##1} }
}
{ \l_Bhargav_tmp_tl }
\group_end:
}
\prop_const_from_keyval:cn
{ c_Bhargav_event_ \token_to_str:N #1 _prop }
{#2}
}
}
\ExplSyntaxOff
% defining a new property list
\newevent\deathfreddie
{%
year=1991,
month=11,
day=24,
Month=November,
}
\begin{document}
Bhargav Rajyaguru asked a question on \questionDay{} the \questionday{} of
\questionmonth, \questionyear.
It was very sad that Freddie Mercury died on
\deathfreddie{year}-\deathfreddie{month}-\deathfreddie{day}. That was the
saddest \deathfreddie{Month} in \deathfreddie{year}.
\end{document}