ModernCV 中的 \quote 和 \raggedright 问题

ModernCV 中的 \quote 和 \raggedright 问题

ModernCV 的 \quote 部分存在问题。

\quote{\raggedright \lipsum[2]}

虽然上面的结果正是我想要的,但任何试图替代

\lipsum[2]

与其他文本一起导致文本无法按我希望的方式对齐。

这让我很困惑,因为常规的引用如下

\quote{Text}

提前致谢

此外,这里是完整的文档:

\documentclass[11pt,a4paper,roman]{moderncv/moderncv}   
\renewcommand*{\listitemsymbol}{\itemsep-2em \labelitemi~}
% moderncv themes
\moderncvstyle{classic}   
\moderncvcolor{blue}  
\usepackage[utf8]{inputenc}   
\usepackage[scale=0.9]{geometry}
\usepackage{pdfpages/pdfpages}
\usepackage{moderntimeline/moderntimeline}
\tlmaxdates{2005}{2016}   
\usepackage{lipsum}
\usepackage{xpatch/xpatch}
\xpatchcmd{\cvitem}{#3}{\small #3}{}{}
\xpatchcmd\makecvtitle{\quotewidth}{0.9\textwidth}{}{} 
\usepackage{xcolor}
\usepackage[url=false,
backend=biber,            
style=authoryear,
doi=false,  
isbn=false,
backref=false,
dashed=false,                                   
maxnames=99,    
sorting=ydnt]{biblatex}
\addbibresource{cvreferences.bib}
\input{biblatex_modifications/standard_modification.tex} 
\newcommand{\cvreferencecolumn}[2]{%
\cvitem[0.75em]{}{%
\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#1\end{minipage}%
\hfill%
\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}%
}%
}
\newcommand{\cvreference}[8]{%
\textbf{#1}\newline% Name
\ifthenelse{\equal{#2}{}}{}{\addresssymbol~#2\newline}%
\ifthenelse{\equal{#3}{}}{}{#3\newline}%
\ifthenelse{\equal{#4}{}}{}{#4\newline}%
\ifthenelse{\equal{#5}{}}{}{#5\newline}%
\ifthenelse{\equal{#6}{}}{}{\emailsymbol~\texttt{\href{mailto:#6}{\nolinkurl{#6}}}\newline}%
\ifthenelse{\equal{#7}{}}{}{\phonesymbol~#7\newline}
\ifthenelse{\equal{#8}{}}{}{\mobilephonesymbol~#8}}
\name{Name}{Name}
\address{Address}{Address}
\phone[mobile]{+00000000000}           
\email{[email protected]}              
\quote{\raggedright Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text }
\begin{document}
\makecvtitle
\end{document}

答案1

当你使用

\usepackage{lipsum}

并放置一个\lipsum,它固有地添加\par到末尾乱数。这\par将强制按照已设置的段落对齐方式设置段落。因此,

\quote{\raggedright \lipsum[2]}

会形成一种\raggedright时尚。然而,使用

\quote{\raggedright <some lengthy text>}

\raggedright如果没有强制启动,则可能无法设置\par。如果您使用了\usepackage[nopar]{lipsum}其他方法,则可能会遇到类似的问题。为了保证这一点,请使用

\quote{\raggedright <some lengthy text>\endgraf}

使用\endgraf可以避免 当前的非\long定义\quote

在此处输入图片描述

答案2

将此添加到你的序言中

\makeatletter
\xpatchcmd{\makecvtitle}
{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}    
{\centering\begin{minipage}{\quotewidth}\raggedright\quotestyle{\@quote}\end{minipage}\\[2.5em]}%
{}{}
\makeatletter
\xpatchcmd\makecvtitle{\quotewidth}{0.9\textwidth}{}{}      %% this should be done here (after removing \centering)  

代码:

\documentclass[11pt,a4paper,roman]{moderncv/moderncv}
\renewcommand*{\listitemsymbol}{\itemsep-2em \labelitemi~}
% moderncv themes
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}
\usepackage[scale=0.9]{geometry}
\usepackage{pdfpages/pdfpages}
\usepackage{moderntimeline/moderntimeline}
\tlmaxdates{2005}{2016}
\usepackage{lipsum}
\usepackage{xpatch}

\makeatletter
\xpatchcmd{\makecvtitle}
{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}    
{\centering\begin{minipage}{\quotewidth}\raggedright\quotestyle{\@quote}\end{minipage}\\[2.5em]}%
{}{}
\makeatletter
\xpatchcmd\makecvtitle{\quotewidth}{0.9\textwidth}{}{}

\usepackage{xcolor}
\name{Name}{Name}
\address{Address}{Address}
\phone[mobile]{+00000000000}
\email{[email protected]}
\quote{Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text Text text text }
\begin{document}
\makecvtitle
\end{document}

在此处输入图片描述

删除并添加后\makecvtitle,请记住修补。\quotewidth\centering\raggedright

答案3

实际上,这非常简单。该\quote命令只是将文本存储在 中\@quote;打印此文本时,它会作为参数传递给\quotestyle,默认情况下定义为

\newcommand*{\quotestyle}[1]{{\quotefont#1}}

因此,您需要做的就是将此宏重新定义为

\renewcommand{\quotestyle}[1]{{\quotefont\raggedright#1\par}}

你的引用将会被扭曲:

\documentclass[11pt,a4paper,roman]{moderncv}   
\renewcommand*{\listitemsymbol}{\itemsep-2em \labelitemi~}
% moderncv themes
\moderncvstyle{classic}   
\moderncvcolor{blue}  

\usepackage{lipsum}

\renewcommand{\quotestyle}[1]{{\quotefont\raggedright #1\par}}

\name{Name}{Name}
\address{Address}{Address}
\phone[mobile]{+00000000000}
\email{[email protected]}

\quote{\lipsum*[2]}

\begin{document}
\makecvtitle
\end{document}

(我删除了不必要的部分。)

在此处输入图片描述

相关内容