我创建了一种新的引用样式。但我必须手动设置引用的行高和宽度。有人有解决方案来创建仅包含 2 或 3 个参数的环境吗?引用、作者和引用环境的宽度?
这是我的代码:
\def\linesize{1.50} % The height of my line
\begin{tikzpicture}
\draw[gray!75] (0,0) -- (0,\linesize);
\draw[gray!75] (0,0.5*\linesize) node [right] {Alfred de Musset};
\draw (0,0.5*\linesize) node [left] {%
\begin{minipage}{0.25\textwidth}
\begin{flushright}
Entre presque oui et oui, il y a tout un monde.
\end{flushright}
\end{minipage}
};
\end{tikzpicture}
第二个问题是,如何选择我的引文的文本位置?(中心线的右侧、左侧)所有这些都在一个环境中?
答案1
幸运的是,TikZ 将节点的内容处理为框,因此您可以将 替换{ .. }
为\bgroup .. \egroup
并在那里分割图片,因此它被放置在 和 中\begin{..}
。\end{..}
参数linesize
也可以作为参数添加,或者简单地从引用大小计算出来。
\documentclass{article}
\usepackage{tikz}
\def\linesize{1.50} % The height of my line
\newenvironment{myquote}[2]{%
\begin{tikzpicture}
\draw[gray!75] (0,0) -- (0,\linesize);
\draw[gray!75] (0,0.5*\linesize) node [right] {#2};
\draw (0,0.5*\linesize) node [left] \bgroup
\begin{minipage}{#1}%
\begin{flushright}%
}%
{%
\end{flushright}%
\end{minipage}%
\egroup;
\end{tikzpicture}
}
\begin{document}
\begin{myquote}{.5\textwidth}{A.U.~Thor}
A quote is a quote is a quote!
\end{myquote}
\end{document}
这里有一个高级版本,它不需要\linesize
并使用更多的 TikZ 参数而不是手动环境:
\newenvironment{myquote}[2]{%
\begin{tikzpicture}
\draw [gray!75] node [right] {#2};
\node (QUOTE) [left,text width={#1},text ragged left] \bgroup
}%
{%
\egroup;
\draw [gray!75]
([yshift=5pt]QUOTE.north east) -- ([yshift=-5pt]QUOTE.south east);
\end{tikzpicture}
}
要将右侧的引号改为,您需要将left
其改为right
,反之亦然,在第二个实现中将其改为east
。west
您可以定义自己的选项来执行此操作,但这有点过头了。我只需再次定义环境,例如作为 star 版本,它使用相同的定义,但交换了值。