
Tentei criar um novo ambiente usando minipágina, que possui o mesmo espaço vertical entre os parágrafos que existiria quando não estivesse usando a minipágina. O que tenho até agora é:
\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 \\%
}
Porém, na linha, onde utilizo pela primeira vez esse novo ambiente, assim:
\begin{songverse}
...
Text
...
\end{songverse}
Estou tendo o erro a seguir:
! Missing number, treated as zero.
<to be read again>
}
\songverse ...in {minipageparskip}{1.0\textwidth }
\begin {center}
l.118 \begin{songverse}
A princípio pensei que fosse falando do 1.0\textwidth
, mas depois vi que escrevi isso em todos os lugares onde usei minipage
, então agora acho que pode não ser isso. Não entendo onde mais um número pode estar faltando, levando a esse erro.
O minipageparskip
ambiente é na verdade copiado de outroPostagem SE.
Em última análise, quero ter um ambiente em que não ocorra quebra de página e que contenha o verso de uma música.
Como posso corrigir o erro?
Exemplo ( samepage
não impedindo o pagebreak no songverse)
Nota: usando xelatex
para compilar.
\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}
Responder1
Seu minipageparskip
ambiente não espera uma discussão. Ajustei sua definição, que o argumento seja repassado.
\newenvironment{minipageparskip}[1]
{%
\setlength{\currentparskip}{\parskip}% save the value
\begin{minipage}{#1}% open the minipage
\setlength{\parskip}{\currentparskip}% restore the value
}%
{\end{minipage}}
Editar:
Mas por que você aninha esses dois ambientes? Eu acho que seria muito mais fácil apenas usarumambiente.
\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}
Responder2
Você também pode usar a tabular
para fornecer um bloco inquebrável. Não sofre do mesmo\baseline
questões que \parbox
e minipage
têm.
\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}