使用 Tccv 文档类对课程进行文本对齐

使用 Tccv 文档类对课程进行文本对齐

您好,我正在尝试修改Two-column CV使用tccv文档类的模板。

具体来说,我想修改工作经验部分的格式,默认情况下它看起来像这样:

工作经历默认格式

我希望日期对齐在左侧,公司和职位对齐在右侧,并保持描述原样。

我打开了tccv课程文档,找到了格式化此部分的块。它是:

\newenvironment{eventlist}{%
\newcommand*\inskip{}
\renewcommand\item[3]{%
\inskip%
{\raggedleft\textsc{##1}\\[1pt]}
{##2}\\[2pt]
{\Large\textit{##3}}
\medskip
\renewcommand\inskip{\bigskip}}}
{\bigskip}

我对其进行了少许修改,几乎实现了我想要的效果,只是无法保持描述的合理性。输出如下:

工作经历已修改

修改后的代码为:

\newenvironment{eventlist}{%
    \newcommand*\inskip{}
    \renewcommand\item[3]{%
    \inskip%
    {\raggedright\textsc{##1}\\[1pt]}
    \raggedleft{##2}\\[2pt]
    \raggedleft{\Large\textit{##3}}
    \medskip
    \renewcommand\inskip{\bigskip}}}
    {\bigskip}

我只是不太确定在哪里添加命令才能使描述合理。提前感谢您的帮助。

unmodified tccv document class

% Copyright (C) 2012  Nicola Fontana <ntd at entidi.it>
%
% This program can be redistributed and/or modified under
% the terms of the LaTeX Project Public License, either
% version 1.3 of this license or (at your option) any later
% version. The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all LaTeX distributions
% version 2005/12/01 or later.
%
% Based on the original idea by Alessandro Plasmati found at
% http://www.latextemplates.com/template/two-column-one-page-cv
%
% The most relevant changes from his work are:
%
% * this is a class, not a template document;
% * tccv is based on scrartcl (from Koma-script), not on article;
% * the fonts are selected from the PSNFSS collection, so no
%   custom font installation should be required;
% * heavily based the implementation on custom environments and
%   macros, so the document is much easier to read (and customize);
% * it is plain LaTeX/Koma-script, so the CV can be compiled
%   with the usual tools, latex and pdflatex included.

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{tccv}
              [2012/11/09 v1.0
 Two Column Curriculum Vitae]

\LoadClass[10pt]{scrartcl}

\setcounter{secnumdepth}{-1}
\RequirePackage[hmargin=1.25cm,vmargin=1.25cm,twocolumn,columnsep=1.25cm]{geometry}
\RequirePackage{bookman,etoolbox,hyperref,marvosym,needspace,tabularx,xcolor}

% Capitalize words of at least a minimum length (default to 3 chars).
% The text is capitalized before being expanded.
%
% This macro uses Lua to do the job but fails gracefully (that is,
% return the text as is) if \directlua is not available.
%
% |[
% \ucwords[optional: miminum length]{text}
% ]|
\newcommand\ucwords[2][3]{%
    % Fails gracefully if not in LuaLaTeX
    \providecommand\directlua[1]{#2}%
    \directlua{%
    local minlen=tonumber("#1")
    local src="\luaescapestring{\unexpanded{#2}}"
    local dst={}
    for w in src:gmatch('[^\string\%s]+') do
        if w:len() >= minlen then w = w:sub(1,1):upper()..w:sub(2) end
        table.insert(dst, w)
    end
    tex.print(dst)}}

\pagestyle{empty}
\setlength\parindent{0pt}
\color[HTML]{303030} % Default foreground color
\definecolor{link}{HTML}{506060} % Hyperlinks
\hypersetup{colorlinks,breaklinks,urlcolor=link,linkcolor=link}
\setkomafont{disposition}{\color[HTML]{801010}}
\setkomafont{section}{\scshape\Large\mdseries}

% In tccv \part must contain the subject of the curriculum vitae.
% The command will start a new page and output in onecolumn the
% subject (first and last name) with the hardcoded text
% "Curriculum vitae" under it.
\renewcommand\part[1]{%
    \twocolumn[%
    \begin{center}
    \vskip-\lastskip%
    {\usekomafont{part} #1} \medskip\\
    {\fontfamily{pzc}\selectfont\Huge Curriculum vitae}
    \bigskip
    \end{center}]}

% Overrides the \section command to capitalize every
% word for cosmetic purposes and draws a rule under it.
\makeatletter
\let\old@section\section
\renewcommand\section[2][]{%
    \old@section[#1]{\ucwords{#2}}%
    \newdimen\raising%
    \raising=\dimexpr-0.7\baselineskip\relax%
    \vskip\raising\hrule height 0.4pt\vskip-\raising}
\makeatother

% Allow conditionals based on the job name. This can usually be set
% from a command-line argument: check fausto.en.tex for an example.
%
% |[
% \ifjob{jobname}{content if matches}{content if does not match}
% ]|
\newcommand\ifjob[3]{%
    \edef\JOBNAME{\jobname}%
    \edef\PIVOT{\detokenize{#1}}%
    \ifdefstrequal{\JOBNAME}{\PIVOT}{#2}{#3}%
}

% Renders a personal data box:
%
% |[
% \personal[optional: web site without scheme (no http:// prefix)]
%          {address}{phone number}{email}
% ]|
\newcommand\personal[4][]{%
    \needspace{0.5\textheight}%
    \newdimen\boxwidth%
    \boxwidth=\dimexpr\linewidth-2\fboxsep\relax%
    \colorbox[HTML]{F5DD9D}{%
    \begin{tabularx}{\boxwidth}{c|X}
    \Writinghand & {#2}\smallskip\\
    \Telefon     & {#3}\smallskip\\
    \Letter      & \href{mailto:#4}{#4}
    \ifstrempty{#1}{}{\smallskip\\ \Lightning & \href{http://#1}{#1}}
    \end{tabularx}}}

% Every \item can be followed by one or more paragraphs
% of description:
%
% |[
% \item{date range}{company}{role}
%
% Description of what achieved during this application.
% ]|
\newenvironment{eventlist}{%
    \newcommand*\inskip{}
    \renewcommand\item[3]{%
    \inskip%
    {\raggedleft\textsc{##1}\\[1pt]}
    {##2}\\[2pt]
    {\Large\textit{##3}}
    \medskip
    \renewcommand\inskip{\bigskip}}}
    {\bigskip}

% Use only \item inside this environment: no other macros
% are allowed:
%
% |[
% \item[optional: what has been achieved]{years}{subject}{notes}
% ]|
\newenvironment{yearlist}{%
    \renewcommand\item[4][]{%
    {\textsc{##2}} & {\bfseries ##3} \\
    \ifstrempty{##1}{}{& {\textsc{##1}} \\}
    & {\textit{##4}}\medskip\\}
    \tabularx{\linewidth}{rX}}
    {\endtabularx}


% Use only \item inside this environment: no other macros
% are allowed:
%
% |[
% \item{fact}{description}
% ]|
\newenvironment{factlist}{%
    \newdimen\unbaseline
    \unbaseline=\dimexpr-\baselinestretch\baselineskip\relax
    \renewcommand\item[2]{%
    \textsc{##1} & {\raggedright ##2\medskip\\}\\[\unbaseline]}
    \tabularx{\linewidth}{rX}}
    {\endtabularx}
%%
%% End of file `tccv.cls'.

Two-column CV模板

\documentclass{tccv}
\usepackage[english]{babel}

\begin{document}

\part{Nicola Fontana}

\section{Work experience}

\begin{eventlist}

\item{July 2007 -- Present}
     {eNTiDi software, Travagliato}
     {Management and development}

Software development for the industrial automation sector: configuration
front-end in C with interface based on \href{http://www.gtk.org/}{GTK+},
web applications and sites on LAMP platforms grounded on the
\href{http://www.silverstripe.org/}{SilverStripe} framework,
supervisor programs in LabVIEW and remote system in
\href{http://www.lua.org/}{Lua} on GNU/Linux systems.

\item{January 2002 -- June 2004}
     {TEMA s.r.l., Travagliato}
     {PLC Omron development}

Development and testing of automatic and semiautomatic machines for
ribbon winding on spools and rolls (safety belts, hook-and-loop tapes,
elastic ribbon and bindings). Designing of electrical schematics on
2D cad and user manuals drafting.

\item{October 1998 -- November 2001}
     {TWINS s.r.l., Sarezzo}
     {PC and PLC Siemens development}

Programming, installation and trial of transfer machines for assembly,
adjustment and testing of gas taps. Development and installation of PC
based semiautomatic test stands for pneumatic and hydraulic leakage
tests on valves, gas regulators, electrovalves, tanks and others.

\item{September 1996 -- September 1998}
     {Elettronica EFFE-GI s.n.c., Cazzago}
     {PC and PLC Hitachi development}

Development of automatic machines in general, here included the design
of electrical, pneumatic and hydraulic schematics on 2D cad and the PLC
programming. Implementation of configuration and logging front-end using
RS232 serial communications between PC and PLC-based transfer machines
in BASIC, Pascal and C.

\item{January 1994 -- June 1996}
     {Seven Diesel s.p.a., Rovato}
     {Engineering department director}

Planning of nozzles for diesel engines and organization of production.
Upgraded the management software by implementing a system for data
handling and automatic drawing generation (in DXF) developed on the
SuperBase 95 RAD tool.

\end{eventlist}

\personal
    [www.entidi.com]
    {viale Conciliazione, 13\newline 25039 -- Travagliato (BS)}
    {+39 (30) 6862332}
    {[email protected]}

\section{Education}

\begin{yearlist}

\item[High school diploma]{1988 -- 1992}
     {Informatic engineer}
     {ITIS Castelli, Brescia}

\item{1987 -- 1988}
     {Classical gymnasium}
     {Seminario vescovile, Cremona}

\end{yearlist}

\section{Public projects}

\begin{yearlist}

\item{2012}
     {ntdisp (\href{http://ntdisp.entidi.com/}{ntdisp.entidi.com})}
     {Embedded devices programmer}

\item{2007}
     {tip (\href{http://tip.entidi.com/}{tip.entidi.com})}
     {PHP framework based on PEAR}

\item{2006}
     {adg (\href{http://adg.entidi.com/}{adg.entidi.com})}
     {Automatic drawing generation}

\item{2006}
     {gtk2panel (\href{http://gtk2panel.entidi.com/}{gtk2panel.entidi.com})}
     {Top panel menu in GTK+2}

\item{2004}
     {ntd (\href{http://ntd.entidi.com/}{ntd.entidi.com})}
     {General purpose libraries}

\end{yearlist}

\section{Communication skills}

\begin{factlist}
\item{Italian}{Native speaker}
\item{English}{Oral: fair -- Written: good}
\item{Spanish}{Oral: good}
\end{factlist}

\section{Software skills}

\begin{factlist}

\item{Good level}
     {C, PHP, HTML, CSS, autotools, git, gcc, GTK+, GObject, shell,
      MS-DOS, Linux, ladder, G-Code}

\item{Intermediate}
     {Lua, \LaTeX, MySQL, VBA, cuBasic, pascal, subversion, LabVIEW}

\item{Basic level}
     {Windows, FreeBSD, OpenIndiana, Postgres}

\end{factlist}

\end{document}

答案1

您不需要更改类文件,这通常是一个坏主意,甚至是不允许的!

您可以使用命令\renewenvironment(您识别出前导?)通过以下代码片段re更改序言中的环境:eventlist

\renewenvironment{eventlist}{% <========================================
  \newcommand*\inskip{}
  \renewcommand\item[3]{%
    \inskip%
    {\raggedright\textsc{##1}\\[1pt]}
    {\raggedleft{##2}\\[2pt]}
    {\hfill\Large\textit{##3}}% <=======================================
    \medskip
    \renewcommand\inskip{\bigskip}%
  }%
}
{\bigskip}

请查看添加的括号和使用的命令\hfill以获得想要的结果。

完整代码如下

\documentclass{tccv}

\usepackage[english]{babel}
\usepackage{microtype} % <==============================================

\renewenvironment{eventlist}{% <========================================
  \newcommand*\inskip{}
  \renewcommand\item[3]{%
    \inskip%
    {\raggedright\textsc{##1}\\[1pt]}
    {\raggedleft{##2}\\[2pt]}
    {\hfill\Large\textit{##3}}% <=======================================
    \medskip
    \renewcommand\inskip{\bigskip}%
  }%
}
{\bigskip}


\begin{document}

\part{Nicola Fontana}

\section{Work experience}

\begin{eventlist}

\item{July 2007 -- Present}
     {eNTiDi software, Travagliato}
     {Management and development}

Software development for the industrial automation sector: configuration
front-end in C with interface based on \href{http://www.gtk.org/}{GTK+},
web applications and sites on LAMP platforms grounded on the
\href{http://www.silverstripe.org/}{SilverStripe} framework,
supervisor programs in LabVIEW and remote system in
\href{http://www.lua.org/}{Lua} on GNU/Linux systems.

\item{January 2002 -- June 2004}
     {TEMA s.r.l., Travagliato}
     {PLC Omron development}

Development and testing of automatic and semiautomatic machines for
ribbon winding on spools and rolls (safety belts, hook-and-loop tapes,
elastic ribbon and bindings). Designing of electrical schematics on
2D cad and user manuals drafting.

\item{October 1998 -- November 2001}
     {TWINS s.r.l., Sarezzo}
     {PC and PLC Siemens development}

Programming, installation and trial of transfer machines for assembly,
adjustment and testing of gas taps. Development and installation of PC
based semiautomatic test stands for pneumatic and hydraulic leakage
tests on valves, gas regulators, electrovalves, tanks and others.

\item{September 1996 -- September 1998}
     {Elettronica EFFE-GI s.n.c., Cazzago}
     {PC and PLC Hitachi development}

Development of automatic machines in general, here included the design
of electrical, pneumatic and hydraulic schematics on 2D cad and the PLC
programming. Implementation of configuration and logging front-end using
RS232 serial communications between PC and PLC-based transfer machines
in BASIC, Pascal and C.

\item{January 1994 -- June 1996}
     {Seven Diesel s.p.a., Rovato}
     {Engineering department director}

Planning of nozzles for diesel engines and organization of production.
Upgraded the management software by implementing a system for data
handling and automatic drawing generation (in DXF) developed on the
SuperBase 95 RAD tool.

\end{eventlist}

\personal
    [www.entidi.com]
    {viale Conciliazione, 13\newline 25039 -- Travagliato (BS)}
    {+39 (30) 6862332}
    {[email protected]}

\section{Education}

\begin{yearlist}

\item[High school diploma]{1988 -- 1992}
     {Informatic engineer}
     {ITIS Castelli, Brescia}

\item{1987 -- 1988}
     {Classical gymnasium}
     {Seminario vescovile, Cremona}

\end{yearlist}

\section{Public projects}

\begin{yearlist}

\item{2012}
     {ntdisp (\href{http://ntdisp.entidi.com/}{ntdisp.entidi.com})}
     {Embedded devices programmer}

\item{2007}
     {tip (\href{http://tip.entidi.com/}{tip.entidi.com})}
     {PHP framework based on PEAR}

\item{2006}
     {adg (\href{http://adg.entidi.com/}{adg.entidi.com})}
     {Automatic drawing generation}

\item{2006}
     {gtk2panel (\href{http://gtk2panel.entidi.com/}{gtk2panel.entidi.com})}
     {Top panel menu in GTK+2}

\item{2004}
     {ntd (\href{http://ntd.entidi.com/}{ntd.entidi.com})}
     {General purpose libraries}

\end{yearlist}

\section{Communication skills}

\begin{factlist}
\item{Italian}{Native speaker}
\item{English}{Oral: fair -- Written: good}
\item{Spanish}{Oral: good}
\end{factlist}

\section{Software skills}

\begin{factlist}

\item{Good level}
     {C, PHP, HTML, CSS, autotools, git, gcc, GTK+, GObject, shell,
      MS-DOS, Linux, ladder, G-Code}

\item{Intermediate}
     {Lua, \LaTeX, MySQL, VBA, cuBasic, pascal, subversion, LabVIEW}

\item{Basic level}
     {Windows, FreeBSD, OpenIndiana, Postgres}

\end{factlist}

\end{document}

然后您得到的结果是:

生成带有微缩字体的 PDF

请注意,我使用了包microtype来获得更好的格式结果。首先尝试使用包microtype,然后将此结果与注释的结果进行比较microtype(仔细查看用红色标记的位置!)...

相关内容