
嘗試用 Latex 在這裡建立我的簡歷。我找到了一個模板,https://github.com/btskinner/tex_cv/blob/master/cv.tex。我不明白的是,為什麼在下面的範例中,兩個表沒有對齊,儘管據我所知程式碼應該對齊它們?這就是它為我編譯的方式:
如何使 2020 和 XXXX 以及「某事,某處」和測試保持一致?謝謝!
\documentclass[11pt]{article}
\newcommand{\recentyear}{1900} % artificially low year to include everything
% ------------------------------------------------------------------------------
% HEADER STUFF (CAN LEAVE ALONE UNLESS YOU WANT TO PERSONALIZE)
% ------------------------------------------------------------------------------
% -------------------------------
% Packages
% -------------------------------
\usepackage[margin=1in]{geometry} % for margins
\usepackage[american]{babel} % for language
% for reference sections
\usepackage{titlesec} % to adjust section headers
\usepackage{tabularx} % for fluid tables
% -------------------------------
% Macros
\newcommand{\RR}{\raggedright\arraybackslash} % left justified
\newcommand{\RL}{\raggedleft\arraybackslash} % right justified
% for tables to keep consistent alignment across sections
\newcolumntype{\twocols}{>{\RR}p{1.25in}>{\RR}X}
\newcolumntype{\threecols}{>{\RR}p{1.25in}>{\RR}X>{\RL}p{1in}}
\begin{document}
\section*{Education}
\begin{center}
\vspace{-1.5em}
\rule{\textwidth}{0.5pt}
\end{center}
\begin{tabularx}{\linewidth}{\threecols}
2020 (expected) &Something, somewhere & Ph.D. \\ % or YYYY (expected)
\end{tabularx}
\section*{Grants and Scholarships}
\begin{center}
\vspace{-1.5em}
\rule{\textwidth}{0.5pt}
\end{center}
\begin{tabularx}{\linewidth}{\threecols}
YYYY & test & bb \\
YYYY - YYYY & Fellowship & \$ AMOUNT \\ % if normal in your field
\end{tabularx}
\end{document}
答案1
我會使用宏,但不會tabularx
:
\documentclass[11pt]{article}
\usepackage{array}
% -------------------------------
% Packages
% -------------------------------
\usepackage[margin=1in]{geometry} % for margins
\usepackage[american]{babel} % for language
% for reference sections
\usepackage{titlesec} % to adjust section headers
\usepackage{tabularx} % for fluid tables
\newcommand{\recentyear}{1900} % artificially low year to include everything
\titleformat{\section}
{\bfseries\Large}
{}% no number
{0pt}% no space
{}% the title
[\titlerule]
% ------------------------------------------------------------------------------
% HEADER STUFF (CAN LEAVE ALONE UNLESS YOU WANT TO PERSONALIZE)
% ------------------------------------------------------------------------------
% -------------------------------
% Macros
\newcommand{\twocolsection}[2]{%
\section{#1}
\begin{tabular}[t]{
@{}
wl{1.25in}
>{\raggedright\arraybackslash}p{\dimexpr\textwidth-1.25in-2\tabcolsep}
@{}
}
#2
\end{tabular}\par
}
\newcommand{\threecolsection}[2]{%
\section{#1}
\begin{tabular}[t]{
@{}
wl{1.25in}
>{\raggedright\arraybackslash}p{\dimexpr\textwidth-2.25in-4\tabcolsep}
wr{1in}
@{}
}
#2
\end{tabular}\par
}
\begin{document}
\threecolsection{Education}{
2020 (expected) &Something, somewhere & Ph.D. \\ % or YYYY (expected)
}
\threecolsection{Grants and Scholarships}{
YYYY & test & bb \\
YYYY - YYYY & Fellowship & \$ AMOUNT \\ % if normal in your field
}
\end{document}
您可以參數化第一列和最後一列的寬度,以防特定 CV 的資料不適合。
這樣您就不會冒tabular
與標題分離的風險。
一個更精緻的版本,其中列寬度(第一列和第三列)被參數化,因此您可以在序言中的適當位置更改它們的大小。此外\twocolsection
,\threecolsection
還有一個可選參數,應為L
(預設)或J
,用於指定主列中的左對齊(右對齊)或對齊方式。
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry} % for margins
\usepackage[american]{babel} % for language
\usepackage{titlesec} % to adjust section headers
\usepackage{array}
% customization of sections
\titleformat{\section}
{\bfseries\Large}
{}% no number
{0pt}% no space
{}% the title
[\titlerule]
% main macros
\newlength{\firstcol}
\newlength{\thirdcol}
% helper column types
\newcolumntype{L}[2]{%
>{\raggedright\arraybackslash}p{\dimexpr\textwidth-(#1)-#2\tabcolsep\relax}%
}
\newcolumntype{J}[2]{%
p{\dimexpr\textwidth-(#1)-#2\tabcolsep\relax}%
}
\newcommand{\twocolsection}[3][L]{%
\section{#2}
\begin{tabular}[t]{
@{}
wl{\firstcol}
#1{\firstcol}{2}
@{}
}
#3
\end{tabular}\par
}
\newcommand{\threecolsection}[3][L]{%
\section{#2}
\begin{tabular}[t]{
@{}
wl{\firstcol}
#1{\firstcol+\thirdcol}{4}
wr{\thirdcol}
@{}
}
#3
\end{tabular}\par
}
%%% final customization
\setlength{\firstcol}{1.25in}
\setlength{\thirdcol}{1in}
%%%
\begin{document}
\threecolsection{Education}{
2020 (expected) &Something, somewhere & Ph.D. \\ % or YYYY (expected)
}
\threecolsection{Grants and Scholarships}{
YYYY & test & bb \\
YYYY - YYYY & Fellowship & \$ AMOUNT \\ % if normal in your field
}
\twocolsection{Whatever}{
YYYY & something long to need being split across lines; let's just
write long enough nonsense and see
}
\twocolsection[J]{Whatever}{
YYYY & something long to need being split across lines; let's just
write long enough nonsense and see
}
\end{document}
另一個版本,您可以透過一些垂直空間分隔每個清單中的項目。人們需要更高層級的方法來確保僅在專案之間添加空間,使用\addlinespace
提供的booktabs
。
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry} % for margins
\usepackage[american]{babel} % for language
\usepackage{titlesec} % to adjust section headers
\usepackage{array}
\usepackage{booktabs}
% customization of sections
\titleformat{\section}
{\bfseries\Large}
{}% no number
{0pt}% no space
{}% the title
[\titlerule]
% main macros
\newlength{\firstcol}
\newlength{\thirdcol}
% helper column types
\newcolumntype{L}[2]{%
>{\raggedright\arraybackslash}p{\dimexpr\textwidth-(#1)-#2\tabcolsep\relax}%
}
\newcolumntype{J}[2]{%
p{\dimexpr\textwidth-(#1)-#2\tabcolsep\relax}%
}
\ExplSyntaxOn
\NewDocumentCommand{\twocolsection}{ O{L} m +m }
{
\section{#2}
\begin{tabular}[t]{
@{}
wl{\firstcol}
#1{\firstcol}{2}
@{}
}
\scw_cv_table:n { #3 }
\end{tabular}\par
}
\NewDocumentCommand{\threecolsection}{ O{L} m +m }
{
\section{#2}
\begin{tabular}[t]{
@{}
wl{\firstcol}
#1{\firstcol+\thirdcol}{4}
wr{\thirdcol}
@{}
}
\scw_cv_table:n { #3 }
\end{tabular}\par
}
\seq_new:N \l__scw_cv_rows_seq
\tl_new:N \l__scw_cv_last_tl
\cs_new_protected:Nn \scw_cv_table:n
{
% get the rows
\seq_set_split:Nnn \l__scw_cv_rows_seq { \\ } { #1 }
% remove the last item if empty
\seq_pop_right:NN \l__scw_cv_rows_seq \l__scw_cv_last_tl
\tl_if_blank:VF \l__scw_cv_last_tl
{% not blank, reinsert it
\seq_put_right:NV \l__scw_cv_rows_seq \l__scw_cv_last_tl
}
% deliver the rows separated by \\ \addlinespace
\seq_use:Nn \l__scw_cv_rows_seq { \\ \addlinespace }
}
\ExplSyntaxOff
%%% final customization
\setlength{\firstcol}{1.25in}
\setlength{\thirdcol}{1in}
%\setlength{\defaultaddspace}{0.5em} % this is the default in booktabs
%%%
\begin{document}
\threecolsection{Education}{
2020 (expected) &Something, somewhere & Ph.D. \\ % or YYYY (expected)
}
\threecolsection{Grants and Scholarships}{
YYYY & test & bb \\
YYYY - YYYY & Fellowship & \$ AMOUNT \\ % if normal in your field
}
\twocolsection{Whatever}{
YYYY & something long to need being split across lines; let's just
write long enough nonsense and see
}
\twocolsection[J]{Whatever}{
YYYY & something long to need being split across lines; let's just
write long enough nonsense and see
}
\end{document}
嘗試不同的 值\defaultaddspace
。
為了處理小節,我建議使用稍微不同的語法,以避免一些程式碼重複。
\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry} % for margins
\usepackage[american]{babel} % for language
\usepackage{titlesec} % to adjust section headers
\usepackage{array}
\usepackage{booktabs}
% customization of sections
\titleformat{\section}
{\bfseries\Large}
{}% no number
{0pt}% no space
{}% the title
[\titlerule]
\titlespacing*{\section}{0pt}{*2}{*1}
\titleformat{\subsection}
{\bfseries\normalsize}
{}% no number
{0pt}% no space
{}% the title
[\titlerule]
\titlespacing*{\subsection}{0pt}{*1}{*0.5}
% main macros
\newlength{\firstcol}
\newlength{\thirdcol}
% helper column types
\newcolumntype{L}[2]{%
>{\raggedright\arraybackslash}p{\dimexpr\textwidth-(#1)-#2\tabcolsep\relax}%
}
\newcolumntype{J}[2]{%
p{\dimexpr\textwidth-(#1)-#2\tabcolsep\relax}%
}
\ExplSyntaxOn
\NewDocumentCommand{\twocol}{ m O{L} m +m }
{
#1{#3}
\begin{tabular}[t]{
@{}
wl{\firstcol}
#2{\firstcol}{2}
@{}
}
\scw_cv_table:n { #4 }
\end{tabular}\par
}
\NewDocumentCommand{\threecol}{ m O{L} m +m }
{
#1{#3}
\begin{tabular}[t]{
@{}
wl{\firstcol}
#2{\firstcol+\thirdcol}{4}
wr{\thirdcol}
@{}
}
\scw_cv_table:n { #4 }
\end{tabular}\par
}
\seq_new:N \l__scw_cv_rows_seq
\tl_new:N \l__scw_cv_last_tl
\cs_new_protected:Nn \scw_cv_table:n
{
% get the rows
\seq_set_split:Nnn \l__scw_cv_rows_seq { \\ } { #1 }
% remove the last item if empty
\seq_pop_right:NN \l__scw_cv_rows_seq \l__scw_cv_last_tl
\tl_if_blank:VF \l__scw_cv_last_tl
{% not blank, reinsert it
\seq_put_right:NV \l__scw_cv_rows_seq \l__scw_cv_last_tl
}
% deliver the rows separated by \\ \addlinespace
\seq_use:Nn \l__scw_cv_rows_seq { \\ \addlinespace }
}
\ExplSyntaxOff
%%% final customization
\setlength{\firstcol}{1.25in}
\setlength{\thirdcol}{1in}
%\setlength{\defaultaddspace}{0.5em} % this is the default in booktabs
%%%
\begin{document}
\threecol\section{Education}{
2020 (expected) &Something, somewhere & Ph.D. \\ % or YYYY (expected)
}
\threecol\section{Grants and Scholarships}{
YYYY & test & bb \\
YYYY - YYYY & Fellowship & \$ AMOUNT \\ % if normal in your field
}
\twocol\subsection{Whatever}{
YYYY & something long to need being split across lines; let's just
write long enough nonsense and see
}
\twocol\subsection[J]{Whatever}{
YYYY & something long to need being split across lines; let's just
write long enough nonsense and see
}
\end{document}