如何将附加操作添加到环境中的参数中

如何将附加操作添加到环境中的参数中

我开始使用 LaTeX。我想写一个文档并定义一些样式。

在这种情况下,我想做两件事一份一段:

  1. 它是红色的
  2. 右对齐

我的问题是,在定义环境时我不知道如何同时做到这两点。

这是我的代码:

%Define color
\newcommand{\txtred}[1]{\textcolor{red}{#1}}

%Command to use in the context
\newcommand{\atright}[1]{\renewcommand{\atright}{#1}}

\newenvironment{txtbook}
    {\begin{flushleft}}
        {\txtred{\atright}
    \end{flushleft}
}

在上下文中:

\begin{txtbook}Del libro del Génesis \hfill \atright{9, 8-15}\end{txtbook}

这可行,但我想将其转换\hfill到环境中,但我不知道该怎么做。

我正在使用回忆录,如果有更简单的方法可以做我想做的事情,我将不胜感激。

右边有一个例子,有这样的论点:

在此处输入图片描述

答案1

如果您确实希望使用环境和当前界面,则以下内容就足够了:

在此处输入图片描述

\documentclass{memoir}

\usepackage{xcolor,lipsum}

\newcommand{\txtred}{\textcolor{red}}
\newcommand{\atright}{\mbox{}\hfill\txtred}
\newenvironment{txtbook}{%
  \raggedright
}{%
  \unskip\par
}

\begin{document}

\lipsum[1]

\begin{txtbook}
  Del libro del Génesis \atright{9, 8-15}
\end{txtbook}

\lipsum[2]

\end{document}

如果需要,可以添加一些间距调整。

答案2

我会使用命令,而不是环境。

\documentclass{memoir}
\usepackage{xcolor}

\usepackage{lipsum} % for mock text

\newcommand{\txtbook}[2]{%
  \par\addvspace{\topsep}
  {\centering #1\hfill\textcolor{red}{#2}\par}\nopagebreak
  \addvspace{\topsep}
}

\begin{document}

\txtbook{Del libro del Génesis}{9, 8-15}

\lipsum[1]

\end{document}

在此处输入图片描述

相关内容