利用moderncv自定制简历样式
来源:互联网 发布:js中定义数组 编辑:程序博客网 时间:2024/05/01 01:04
最近想用mordencv做个中文latex简历,moderncv本来是个英文的模板,网上可以找到很多让其支持中文的方法(见“1. 让moderncv模板支持中文”)。
不过后来发现英文版的简历上方会有大量的留白,改成中文后看起来很不紧凑,网上搜了半天也没有个统一的解决方法。于是自己研究了一下模板代码,找到了一些修改模板样式的方式,简单总结(见“2. 修改moderncv模板样式”)。(注:时间仓促,以下不详述具体细节,只介绍方法)
1. 让moderncv模板支持中文
(本部分内容是参考网上的方法,由于很多是普遍通用的,因此不引用出处)
1)将mordencv.cls中的
% hyperrefs\RequirePackage{url}\ifpdf \RequirePackage[pdftex,]{hyperref}\else \RequirePackage[dvips]{hyperref}\fi修改为
\RequirePackage{ifxetex}\ifpdf \RequirePackage[pdftex,]{hyperref}\else\ifxetex \RequirePackage[xetex]{hyperref} \else \RequirePackage[dvips]{hyperref} \fi2)在.tex文件中加入中文字体的设置,比如
\usepackage[slantfont,boldfont,CJKnumber,CJKtextspaces]{xeCJK}\setCJKmainfont[BoldFont={SimHei}, ItalicFont={KaiTi}]{SimSun}\setCJKsansfont{KaiTi}\setCJKmonofont{STFangsong}3)编译时使用xelatex命令
2. 修改moderncv模板样式
moderncv模板主要包括三部分:moderncv.cls文件、.sty文件和.tex文件,分别负责不同的功能。
1)moderncv.cls文件。主要定义了一些structure command,例如firstname和lastname:
\newcommand*{\firstname}[1]{\def\@firstname{#1}}\newcommand*{\familyname}[1]{\def\@familyname{#1}}这些command被进一步在.sty文件中声明和定义了其在整个页面中出现的位置,然后就可以在.tex文件中对其引用。我们也可以模仿这种样式自定义自己所需要的command->在.sty文件中定义其位置->在.tex文件中引用,最终让其最终出现在简历页面中。
2).sty文件。包括两种:moderncvthemeclassic.sty和moderncvthemecasual.sty,分别对应不同的模板样式(主要是简历头部样式),在.tex文件中可以通过\moderncvtheme[blue]{classic} 声明使用哪种样式(包括模板的颜色)。我们要解决的问题是将简历头部变紧凑,而头部结构的定义出现在.sty文件中的这一部分:
\renewcommand*{\maketitle}{% % name and title \begin{minipage}[b]{\maketitlenamewidth}% \firstnamestyle{\@firstname~}\familynamestyle{\@familyname}% \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}% \end{minipage}% % optional data \begin{minipage}[b]{\maketitledetailswidth}% \raggedleft\addressfont\color{addresscolor}% \ifthenelse{\isundefined{\@addressstreet}}{}{% \maketitledetailsnewline% \addresssymbol~\@addressstreet% \ifthenelse{\isundefined{\@addresscity}}{}{\\\@addresscity}}% \ifthenelse{\isundefined{\@mobile}}{}{\maketitledetailsnewline\mobilesymbol~\@mobile}% \ifthenelse{\isundefined{\@phone}}{}{\maketitledetailsnewline\phonesymbol~\@phone}% \ifthenelse{\isundefined{\@fax}}{}{\maketitledetailsnewline\faxsymbol~\@fax}% \ifthenelse{\isundefined{\@email}}{}{\maketitledetailsnewline\emailsymbol~\emaillink{\@email}}% \ifthenelse{\isundefined{\@extrainfo}}{}{\maketitledetailsnewline\@extrainfo}% \end{minipage}% % optional photo \ifthenelse{\isundefined{\@photo}}% {}% {\hspace*{\separatorcolumnwidth}\color{firstnamecolor}\framebox{\includegraphics[width=\maketitlepicturewidth]{\@photo}}}\\[3em]% % optional quote \ifthenelse{\isundefined{\@quote}}% {}% {\centering{\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}}\\[2.5em]}% }
其中定义了头像位置、联系方式等信息,可以轻松改变这些排版模式(如果懂latex命令的话,minipage是一个很好用的工具~)。需要注意的是这里一些长度字段的定义,比如\,maketitlepicturewidth,本质上都是一些变量,变量值要么引用了其他地方的长度声明,要么就是简单的赋值。一般可以从.sty文件的起始部分找到这些变量的声明和赋值,比如:
\newlength{\maketitlepicturewidth}//声明\setlength{\maketitlepicturewidth}{\@photowidth}//应用.tex文件中的长度声明3).tex文件。主文件,基于上述对.cls和.sty两个文件的设置,我们可以方便的在该文件中引用structure command编辑简历。
- 利用moderncv自定制简历样式
- 利用moderncv定制简历样式
- 用moderncv简历制作
- 采用Latex的moderncv制作简历
- TexLive+moderncv,打造你自己的简历
- 关于latex制作简历(Moderncv)中文不能复制的问题
- 用moderncv制作精美的Latex中英文简历
- 用moderncv编写漂亮的中文简历(zz)
- 使用moderncv写简历,日期列过窄
- ctex moderncv版本更新--用latex写一个漂亮的简历
- Blog样式定制
- datagrid样式表定制
- 定制Apache索引样式
- Android ExpandableListView样式定制
- [Android]定制RadioButton样式
- Android 定制RadioButton样式
- Android 定制RadioButton样式
- Android 定制RadioButton样式
- rt3070 移植到at91 linux记录
- 使用 udev 高效、动态地管理 Linux 设备文件
- 双飞翼布局(圣杯布局)介绍-始于淘宝UED
- Android之googleMap
- JS 3D玫瑰
- 利用moderncv自定制简历样式
- 学习类unix系统必须会的一些基本命令
- 看看牛人们是怎么评价编程语言的
- Java Web利用POI导出Excel简单例子
- Android之googleMap 2
- Android学习之书签效果的实现
- 如何用JS获取键盘上任意按键的值
- nyoj 括号配对问题
- osi