
Ich habe versucht, mithilfe der Minipage eine neue Umgebung zu erstellen, die den gleichen vertikalen Abstand zwischen den Absätzen aufweist, wie wenn die Minipage nicht verwendet würde. Was ich bisher habe, ist:
\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 \\%
}
Allerdings sieht die Zeile, in der ich diese neue Umgebung zum ersten Mal verwende, so aus:
\begin{songverse}
...
Text
...
\end{songverse}
Ich erhalte die folgende Fehlermeldung:
! Missing number, treated as zero.
<to be read again>
}
\songverse ...in {minipageparskip}{1.0\textwidth }
\begin {center}
l.118 \begin{songverse}
Zuerst dachte ich, es ginge um das 1.0\textwidth
, aber dann sah ich, dass ich das überall geschrieben habe, wo ich verwendet habe minipage
, also denke ich jetzt, dass es vielleicht nicht das ist. Ich verstehe nicht, wo sonst eine Zahl fehlen könnte, was zu diesem Fehler führt.
Die minipageparskip
Umgebung wird tatsächlich von einer anderen kopiertSE-Beitrag.
Letztendlich möchte ich eine Umgebung haben, in der kein Seitenumbruch auftritt und die eine Strophe eines Liedes enthält.
Wie kann ich den Fehler beheben?
Beispiel ( samepage
kein Verhindern des Seitenumbruchs innerhalb von Songverse)
Hinweis: Verwenden Sie xelatex
zum Kompilieren.
\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}
Antwort1
Deine minipageparskip
Umgebung erwartet kein Argument. Ich habe deine Definition so angepasst, dass das Argument durchgereicht wird.
\newenvironment{minipageparskip}[1]
{%
\setlength{\currentparskip}{\parskip}% save the value
\begin{minipage}{#1}% open the minipage
\setlength{\parskip}{\currentparskip}% restore the value
}%
{\end{minipage}}
Bearbeiten:
Aber warum verschachteln Sie diese beiden Umgebungen überhaupt? Ich denke, es wäre viel einfacher, einfach zu verwendeneinsUmfeld.
\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}
Antwort2
Sie können auch einen verwenden, tabular
um einen unzerstörbaren Block bereitzustellen. Es leidet nicht unter den gleichen\baseline
Probleme, die \parbox
und minipage
haben.
\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}