
我嘗試使用小型頁面建立一個新環境,該環境的段落之間的垂直間距與不使用小型頁面時的垂直間距相同。到目前為止我所擁有的是:
\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
實際上是從另一個複製的東南郵報。
最終,我想要一個沒有分頁並且包含歌曲歌詞的環境。
我該如何修復該錯誤?
範例(samepage
不阻止歌曲中的分頁)
註:使用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
您也可以使用 atabular
來提供牢不可破的塊。它不會遭受同樣的痛苦\baseline
\parbox
存在minipage
的問題。
\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}