帶有子標籤的環境

帶有子標籤的環境

是否有可能以這種方式創建一個可用的環境...?

\begin{myEnvironment}

\{title}[This is a title]
\{year}[2016]
\{content}[Lorem ipsum dolor sit amet, consectetur adipisci elit,
sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrum exercitationem ullam corporis
suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.]

\end{myEnvironment}

……還是這樣……?

\begin{myEnvironment}

\{title} This is a title
\{year} 2016
\{content} Lorem ipsum dolor sit amet, consectetur adipisci elit,
sed eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut
enim ad minim veniam, quis nostrum exercitationem ullam corporis
suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur.

\end{myEnvironment}

……或者類似的東西?

如果我願意,我可以省略一個字段(例如title)。

輸出應該是這樣的(例如):

  • 標題:這是一個標題
  • 年:2016年

Lorem ipsum dolor sat amet,consectetur adipisci elit,sed eiusmod tempor incidunt ut laboure et dolore magna aliqua。 Ut enim ad minim veniam, quis nostrum exeritationem ullam corporis suscipit Laboriosam, nisi ut aliquid ex ea commodi consequatur.

答案1

是的,這是可能的,而且還具有友好的用戶級語法。

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn

\NewDocumentEnvironment{myenv}{m} % <--- choose a better name
 {
  % process the keys
  \keys_set:nn { myenv } { #1 }
  % print them
  \par\addvspace{\topsep}
  \noindent\makebox[4em][l]{\textbullet\ \textbf{Title:}}~\l_myenv_title_tl
  \\*
  \noindent\makebox[4em][l]{\textbullet\ \textbf{Year:}}~\l_myenv_year_tl
  \\*
  \ignorespaces
 }
 {
  \par\addvspace{\topsep}
 }

% define the keys
\keys_define:nn { myenv }
 {
  title .tl_set:N = \l_myenv_title_tl,
  year  .tl_set:N = \l_myenv_year_tl,
  title .value_required:n = true,
  year  .value_required:n = true,
 }
\ExplSyntaxOff

\begin{document}

\begin{myenv}{
  title = This is a title,
  year  = 2016,
}
Lorem ipsum dolor sit amet, consectetur adipisci elit, 
sed eiusmod tempor incidunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam, quis nostrum exercitationem
ullam corporis suscipit laboriosam, nisi ut aliquid ex ea
commodi consequatur.
\end{myenv}

\end{document}

在此輸入影像描述

相關內容