미니페이지 환경은 parskip을 유지합니다.

미니페이지 환경은 parskip을 유지합니다.

저는 미니페이지를 사용하지 않을 때와 동일한 단락 사이의 수직 공간을 갖는 미니페이지를 사용하여 새로운 환경을 만들려고 했습니다. 내가 지금까지 가지고 있는 것은 다음과 같습니다.

\usepackage{boxedminipage} % had to use this to get minipage

\newlength{\currentparskip}
\newenvironment{minipageparskip}
{%
    \setlength{\currentparskip}{\parskip}% save the value
    \begin{minipage}{1.0\textwidth}% open the minipage
    \setlength{\parskip}{\currentparskip}% restore the value
}%
{\end{minipage}}

\newenvironment{songverse}
{%
    \begin{minipageparskip}{1.0\textwidth}%
    \begin{center}%
}
{%
    \end{center}%
    \end{minipageparskip}%
    \leavevmode \\%
}

그러나 이 새로운 환경을 처음 사용하는 줄에서는 다음과 같습니다.

\begin{songverse}
...
Text
...
\end{songverse}

다음 오류가 발생합니다.

! Missing number, treated as zero.
<to be read again> 
                   }
\songverse ...in {minipageparskip}{1.0\textwidth }
                                                  \begin {center}
l.118 \begin{songverse}

처음에는 에 대해 이야기하는 줄 알았는데 1.0\textwidth, 를 사용하는 모든 곳에 그렇게 썼다는 것을 알고 minipage지금은 그렇지 않을 수도 있다고 생각합니다. 숫자가 누락되어 이 오류가 발생할 수 있는 다른 위치를 이해할 수 없습니다.

그만큼minipageparskip 은 실제로 다른 환경에서 복사됩니다.SE 포스트.

궁극적으로 페이지 나누기가 발생하지 않고 노래 한 소절이 포함된 환경을 만들고 싶습니다.

오류를 어떻게 수정할 수 있나요?

예( samepagesongverse 내에서 페이지 나누기를 방지하지 않음)

참고: xelatex컴파일하는 데 사용됩니다.

    \documentclass[12pt, a5paper]{extarticle}
\usepackage[
    top=20mm,
    bottom=20mm,
    left=24mm,
    right=24mm
]{geometry}

\usepackage{fontspec}
\usepackage{xunicode}
\usepackage[UTF8]{ctex}

% AUTOMATICAL PINYIN PHONETIC SCRIPT
\newfontfamily{\DVS}{DejaVu Sans}
\usepackage{xpinyin}
\xpinyinsetup{ratio={.6}, hsep={.5em plus .1em}, vsep={1.1em}, multiple={\color{red}}, pysep={.2em}, footnote=false, font=\DVS}


\newenvironment{songverse}
{%
    \begin{samepage}%
    \begin{center}%
}{%
    \end{center}%
    \end{samepage}%
}


\begin{document}

\begin{pinyinscope}

\begin{songverse}

无量心 生福报 无极限

无极限 生息息 爱相连

为何君视而不见

规矩定方圆

悟性 悟觉 悟空 心甘情愿

\end{songverse}
\begin{songverse}

放下 颠倒梦想 放下云烟

放下 空欲色 放下悬念

多一物 却添了 太多危险

少一物 贪嗔痴 会少一点

\end{songverse}
\begin{songverse}

若是缘 再苦味也是甜

若无缘 藏爱 在心田

尘世 藕断还丝连

回首一瞬间

种颗善因 陪你走好每一天

\end{songverse}
\begin{songverse}

唯有 心无挂碍 成就大愿

唯有 心无故 妙不可言

算天算\xpinyin{地}{di4} 算尽\xpinyin{了}{liao3} 从前

算不出 生死 会在哪一天

\end{songverse}
\begin{songverse}

勿生恨 点化虚空的眼

勿生怨 欢喜 不遥远

缠绕 欲望的思念

善恶一瞬间

心怀忏悔 陪你走好每一天

\end{songverse}
\begin{songverse}

再牢的谎言

却逃不过天眼

明日之前 心流离更远

浮云霎那间

障眼 人心渐离间

集苦连连 不断的出现

\end{songverse}
\begin{songverse}

无量心 生福报 无极限

无极限 生息息 爱相连

凡人却视而不见

规矩定方圆

悟性 悟觉 悟空 心甘情愿

\end{songverse}
\begin{songverse}

简简单单 陪你走好每一天

\end{songverse}
\end{pinyinscope}

\end{document}

답변1

귀하의 minipageparskip환경은 논쟁을 기대하지 않습니다. 인수가 전달되도록 정의를 조정했습니다.

\newenvironment{minipageparskip}[1]
{%
    \setlength{\currentparskip}{\parskip}% save the value
    \begin{minipage}{#1}% open the minipage
    \setlength{\parskip}{\currentparskip}% restore the value
}%
{\end{minipage}}

편집하다:

그런데 왜 이 두 환경을 중첩합니까? 그냥 사용하면 훨씬 편할 것 같아요하나환경.

\documentclass{article}
\newlength{\currentparskip}
\newenvironment{songverse}
{%
    \setlength{\currentparskip}{\parskip}% save the value
    \begin{minipage}{1.0\textwidth}%
    \setlength{\parskip}{\currentparskip}% restore the value
    \begin{center}%
}{%
    \end{center}%
    \end{minipage}%
    \leavevmode \\%
}
\begin{document}
\begin{songverse}
...
Text
...
\end{songverse}
\end{document}

답변2

또한 a를 사용하여 tabular깨지지 않는 블록을 제공할 수도 있습니다. 똑같은 일로 고통받지는 않아\baseline그 문제 \parboxminipage.

여기에 이미지 설명을 입력하세요

\documentclass{article}

\usepackage[nopar]{lipsum}% Just for this example

\newlength{\currentparskip}

\newenvironment{songverse}
{%
  \setlength{\currentparskip}{\parskip}% Save current \parskip
  \par%\vspace{\baselineskip}% Add possible separation
  \noindent\begin{tabular}[t]{@{} p{\textwidth} @{}}%
    \centering
    \setlength{\parskip}{\currentparskip}% Restore current \parskip
}
{%
  \end{tabular}%
  \par%\vspace{\baselineskip}% Add possible vertical separation
}

\begin{document}

\setlength{\parskip}{10pt}

\lipsum[1]

\lipsum[2]

\newpage

\begin{songverse}
\lipsum[1]

\lipsum[2]
\end{songverse}

\end{document}

관련 정보