我怎样才能将作者完全右对齐?或者更好的是,你能告诉我可以使用哪些命令吗?我在序言中有这个:
\makeatletter
\newenvironment{chapquote}[2][2.7em]
{\setlength{\@tempdima}{#1}
\def\chapquote@author{#2}
\parshape 1 \@tempdima \dimexpr\textwidth-2\@tempdima\relax
\itshape}
{\newline\par\normalfont\hfill--\ \chapquote@author\hspace*{\@tempdima}\par\bigskip}
\makeatother
进而:
\begin{document}
\chapter{Question}
\begin{chapquote}
{Name Surname, \textit{Book name} \cite{Handler}}
,,Lorem ipsum dolor sit amet foo bar.''
\end{chapquote}
结果是:
我发现,当我在下面的命令中使用“em”值时,我可以同时设置右侧和左侧的填充(或类似的东西)。但我想分别设置右侧和左侧的填充。你能帮助/指导我吗?
谢谢
\newenvironment{chapquote}[2][1em]
答案1
这里,我引入了一个额外的参数chapquote
。如果它(第一个强制参数)为空白,则右边距与左边距(可选参数)相同。如果第一个强制参数非空,则它使用可选参数作为左边距,使用第一个强制参数作为右边距。
\documentclass{book}
\usepackage[showframe]{geometry}
\makeatletter
\newenvironment{chapquote}[3][2.7em]
{\setlength{\@tempdima}{#1}
\ifx\relax#2\relax\setlength{\@tempdimb}{#1}\else\setlength{\@tempdimb}{#2}\fi
\def\chapquote@author{#3}
\parshape 1 \@tempdima \dimexpr\textwidth-\@tempdima-\@tempdimb\relax
\itshape}
{\newline\par\normalfont\hfill--\ \chapquote@author\hspace*{\@tempdimb}\par\bigskip}
\makeatother
\begin{document}
\chapter{Question}
\begin{chapquote}{150pt}
{Name Surname, \textit{Book name} \cite{Handler}}
,,Lorem ipsum dolor sit amet foo bar.''
\end{chapquote}
\begin{chapquote}{}
{Name Surname, \textit{Book name} \cite{Handler}}
,,Lorem ipsum dolor sit amet foo bar. Lorem ipsum dolor sit amet foo bar. Lorem ipsum dolor sit amet foo bar. Lorem ipsum dolor sit amet foo bar.''
\end{chapquote}
\begin{chapquote}{0pt}
{Name Surname, \textit{Book name} \cite{Handler}}
,,Lorem ipsum dolor sit amet foo bar. Lorem ipsum dolor sit amet foo bar. Lorem ipsum dolor sit amet foo bar. Lorem ipsum dolor sit amet foo bar.''
\end{chapquote}
\end{document}
如果一个人确实想要默认右边距为 0pt,而不是与左边距相同,则需要修改这一行:
\ifx\relax#2\relax\setlength{\@tempdimb}{0pt}\else\setlength{\@tempdimb}{#2}\fi