如何在段落中间简单地插入月份和年份?

如何在段落中间简单地插入月份和年份?

我正在写论文,我想在很多地方插入一些过去事件的月份和年份!怎么做?有人能告诉我一个最简单的方法吗?我是 LaTeX 的初学者。也请原谅我的英语不好。

我已将这些事件列在一个文本文件中。例如,超导现象是海克·卡默林·昂内斯 (Heike Kamerlingh Onnes) 于 1991 年 4 月发现的。

我只是期望输出格式如下

1991 年 4 月

答案1

您可以简单地定义一个宏来存储相关数据,例如,您可以用它\newcommand\questionDay{Monday}来存储您提出这个问题的日期。然后您可以\questionDay在段落中引用这一天的任何位置使用它。但是,请记住,宏名称后的空格会被忽略,因此如果您希望后面有一个空格,\questionDay您可以使用它\questionDay{}

另一种方法是将数据存储在某个数据结构中并检索该数据结构。下面实现了这样一个数据结构,您可以通过给出宏名称和key=value存储此宏名称属性的对列表来初始化该数据结构。然后,当您使用该宏时,它将接受一个参数,即先前存储的属性之一,并且它将排版该属性的值。

此示例展示了这两种方法:

\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}

相关内容