如何在宏末尾添加换行符?

如何在宏末尾添加换行符?

我想简化书写该内容应以表格形式出现。

我已经编写了两个宏来缩进和着色我想避免总是\par在每行末尾写入。

我怎样才能将其\par插入到宏的末尾...此外,在宏的末尾\sr插入两个换行符。

或者 ...进一步简化,我可以插入彩色,我可以从宏或环境中无需在文本中输入

这是我的代码:

% !TeX program = lualatex
\documentclass[10pt,twoside,openany,showtrims]{memoir}
%\usepackage[T1]{fontenc}
%\usepackage[spanish]{babel}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
\usepackage{ucs}
\usepackage{csquotes} 
\usepackage{xcolor}  
\usepackage{needspace}  
\usepackage{lipsum} 
\setcounter{tocdepth}{4}
\settrimmedsize{6in}{9in}{*}
\setmainfont{FreeSerif}

\newfontfamily\fsfont{FreeSerif}
\newfontfamily\alterfont{FreeSans}

\newcommand{\txtred}[1]{\textcolor{red}{#1}}
\newcommand{\h}{\hspace{5mm}}
\newcommand{\hl}{\hspace{10mm}}
\newcommand{\sv}{\txtred}
\newcommand{\sr}{\txtred}

\newenvironment{readbody}{%
    \alterfont
}%

\begin{document}
    \mainmatter
    \begin{readbody}
        \sv ℣.  \h Señor, enséñame tus caminos,\par
                \hl instrúyeme en tus sendas: \par
                \hl haz que camine con lealtad;\par
                \hl enséñame, porque tú eres mi Dios y Salvador. \sr ℟.\par \par 
                %Need two lines skip here
        \sv ℣.  \h Recuerda, Señor, que tu ternura\par
                \hl y tu misericordia son eternas;\par
                \hl acuérdate de mí con misericordia,\par
                \hl por tu bondad, Señor. \sr ℟.\par \par                        
                %Need two lines skip here
        \sv ℣.  \h El Señor es bueno y es recto,\par
                \hl enseña el camino a los pecadores;\par
                \hl hace caminar a los humilles con rectitud,\par
                \hl enseña su camino a los humildes. \sr ℟.
    \end{readbody}  
\end{document}

输出结果如下:

在此处输入图片描述

我想简化一下,这样写:

\begin{readbody}
    \sv ℣.  \h Señor, enséñame tus caminos,
            \hl instrúyeme en tus sendas: 
            \hl haz que camine con lealtad;
            \hl enséñame, porque tú eres mi Dios y Salvador. \sr ℟.
    \sv ℣.  \h Recuerda, Señor, que tu ternura
            \hl y tu misericordia son eternas;
            \hl acuérdate de mí con misericordia,
            \hl por tu bondad, Señor. \sr ℟.
    \sv ℣.  \h El Señor es bueno y es recto,
            \hl enseña el camino a los pecadores;
            \hl hace caminar a los humilles con rectitud,
            \hl enseña su camino a los humildes. \sr ℟.
\end{readbody}

并给出这个:

在此处输入图片描述

我从 LaTeX 开始。因此,我愿意听取更好的方法建议,但请记住,在这种情况下,我的目标之一是简化书写

答案1

在此处输入图片描述

我已经使用\obeylines\everypar自动添加项目,请注意您的环境定义缺少带有结束代码的第二个参数。

% !TeX program = lualatex
\documentclass[10pt,twoside,openany,showtrims]{memoir}
%\usepackage[T1]{fontenc}
%\usepackage[spanish]{babel}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{spanish}
% \usepackage{ucs}
\usepackage{csquotes} 
\usepackage{xcolor}  
\usepackage{needspace}  
\usepackage{lipsum} 
\setcounter{tocdepth}{4}
\settrimmedsize{6in}{9in}{*}
\setmainfont{FreeSerif}

\newfontfamily\fsfont{FreeSerif}
\newfontfamily\alterfont{FreeSans}

\newcommand{\txtred}[1]{\textcolor{red}{#1}}
\newcommand{\sv}{\txtred}
\newcommand{\sr}{\txtred}

\makeatletter
\catcode13\active %
\newenvironment{readbody}{%
    \alterfont%
    \setlength\parskip{\bigskipamount}%
    \setlength\parindent{0pt}%
    \setlength\leftskip{10mm}%
    \catcode13\active %
    \def^^M{\@ifnextchar^^M{\par}{\@ifnextchar\end{\ifhmode\par\fi}{\ifhmode\\\fi}}}%
    \def\par{~\sr ℟.\endgraf}%
    \everypar{\makebox[0pt]{\sv ℣.\qquad}}%
}{}%
\catcode13=5 %
\makeatother

\begin{document}
    \mainmatter
    \begin{readbody}
         Señor, enséñame tus caminos,
         instrúyeme en tus sendas: 
         haz que camine con lealtad;
         enséñame, porque tú eres mi Dios y Salvador.

          Recuerda, Señor, que tu ternura
          y tu misericordia son eternas;
          acuérdate de mí con misericordia,
          por tu bondad, Señor.

          El Señor es bueno y es recto,
          enseña el camino a los pecadores;
          hace caminar a los humilles con rectitud,
          enseña su camino a los humildes.

    \end{readbody}  
\end{document}

答案2

这是一个适合您的解决方案。我更改了您的定义\sv\rv重新定义了readbody环境。

\documentclass[10pt,twoside,openany,showtrims]{memoir}
\settrimmedsize{6in}{9in}{*}
\usepackage{fontspec}
  \setmainfont{FreeSerif}
  \newfontfamily\fsfont{FreeSerif}
  \newfontfamily\alterfont{FreeSans}
\usepackage{polyglossia}
  \setdefaultlanguage{spanish}
\usepackage{xcolor}  

\newcommand{\sv}{\item\textcolor{red}{℣}.\quad}
\newcommand{\sr}{\textcolor{red}{℟}.\medskip}

\newenvironment{readbody}{\list{}{
  \itemindent=-1cm
  \leftmargin=1cm
  \parsep=0pt}
  \obeylines\alterfont}{\endlist}

\begin{document}
\begin{readbody}
\sv Señor, enséñame tus caminos,
    instrúyeme en tus sendas: 
    haz que camine con lealtad;
    enséñame, porque tú eres mi Dios y Salvador. \sr

\sv Recuerda, Señor, que tu ternura
    y tu misericordia son eternas;
    acuérdate de mí con misericordia,
    por tu bondad, Señor. \sr                        

\sv El Señor es bueno y es recto,
    enseña el camino a los pecadores;
    hace caminar a los humilles con rectitud,
    enseña su camino a los humildes. \sr
\end{readbody}

\end{document}

相关内容