将引用放在右侧 csQuotes

将引用放在右侧 csQuotes

我非常喜欢这个答案中的引用方式 引用环境并在末尾引用 有没有办法使用 csQuotes 获得相同的效果?下面是一个稍微简单的例子 =)

\begin{filecontents}{biblio.bib}
@book{Feynman,
        author = "Richard P. Feynman",
        title = "Surely You're Joking, Mr.Feynman!",
        publisher = "WW.Norton Company, Inc",
        year = "1985"
}
\end{filecontents}

\documentclass[12pt,a4paper]{article}
\usepackage[sort,numbers,square]{natbib}
\usepackage[norsk]{babel}
\usepackage[autostyle]{csquotes}
\usepackage[lipsum]

\begin{document}

\textquote[Feynman \citep[s39-41]{Feynman}]{\lipsum[1]}{}{}

\bibliographystyle{plain}
\bibliography{biblio}    

\end{document}

这是我得到的

我得到了什么

这就是我想要的 =)

我想要的是

我确实尝试了一些棘手的修复,例如定义新环境等等。但很可能这里的人在使用这些软件包方面更有经验 =)

答案1

这里有两个问题。如果任其发展,在文本末尾lipsum放置一个——这就是为什么你的结尾引号(和)会出现在下一行。你需要使用,这样标记就不会插入。\par\cite\lipsum*[1]\par

另一个问题是获得 flushright 效果:您需要重新定义\mktextquote

\renewcommand{\mktextquote}[6]{#1#2#4#3\hfill\hbox{#6}#5}

所以整个文件看起来是这样的:

\begin{filecontents}{biblio.bib}
@book{Feynman,
        author = "Richard P. Feynman",
        title = "Surely You're Joking, Mr.Feynman!",
        publisher = "WW.Norton Company, Inc",
        year = "1985"
}
\end{filecontents}

\documentclass[12pt,a4paper]{article}
\usepackage[sort,numbers,square]{natbib}
\usepackage[norsk]{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}

\newcommand{\signat}[1]{%
    {%
        \unskip
        \nobreak
        \hfil
        \penalty50%
        \hskip2em%
        \hbox{}%
        \nobreak
        \hfil
        #1%
        \parfillskip=0pt%
        \finalhyphendemerits=0% 
        \endgraf
     }%
}


\renewcommand{\mktextquote}[6]{#1#2#4#3\signat{#6}#5}

\begin{document}

\textquote[{\cite[s39-41]{Feynman}}]{\lipsum*[1]}{}{}


\bibliographystyle{plain}
\bibliography{biblio}    

\end{document}

我修改了我的答案,加入了 Knuth 的一个版本\signed,它只接受一个参数。你可以试试。但是,当我运行你的文件(在 TeXLive2013 上)时,我没有得到一个名字(“Feynman”)而是一个数字(“1”),所以我无法用一个长名字复制你的问题,顺便问一下,这是什么?

为了完整性,\mkblockquote可以类似地重新定义:

\renewcommand{\mkblockquote}[5]{#1#2#3\signat{#4}#5}

相关内容