LaTeX - 缩进到指定位置

LaTeX - 缩进到指定位置

我正在尝试弄清楚如何将特定行缩进到特定位置。

我能够使用“蛮力”做的事情。

在此处输入图片描述

下面是我用来生成该代码的代码:

\documentclass[a4,12pt] {article}
\usepackage{ragged2e}
\usepackage[margin=0.5in]{geometry}
\setlength{\parindent}{0cm}
\usepackage{setspace}
\thispagestyle{empty}


\begin{document}


\begin{flushleft}


\textbf{List name} \\
\vspace{-2ex}
\rule{\textwidth}{1pt}
- This is a sentence I am typing here (1) \hfill Feb 2019 –- Nov 2020 \\
\-\hspace{0.19cm} And this is the sentence below it (1.1) \\

\vspace{1cm}

\textbf{The name of the other list} \\
\vspace{-2ex}
\rule{\textwidth}{1pt}
- This is a sentence I am typing here (2) \hspace{7.5cm} 2020 \\
\-\hspace{0.19cm} And this is the sentence below it (2.1)  \\


\end{flushleft}


\end{document}
  1. 使用命令\-\hspace{0.19cm}我不断调整距离直到我让“And”中的“A”从“This”中的“T”开始。

  2. 使用该命令,\hspace{7.5cm}我能够让“2020”中的“2”在“Feb”中的“F”的位置开始。

有没有更好的方法来完成这两件事?

此外,我甚至无法开始思考如何做的是:如何将“2020”定位到“2019 年 2 月 - 2020 年 11 月”的中心?大致如下:

在此处输入图片描述

答案1

最直接的方法可能是使用tabular可以设置不同列的宽度和对齐方式的环境。

\documentclass[a4paper,12pt]{article}
%\usepackage{ragged2e}
\usepackage[margin=0.5in]{geometry}
\setlength{\parindent}{0cm}
%\usepackage{setspace}
\usepackage{array,calc}

\thispagestyle{empty}

\begin{document}

\begin{flushleft}

\textbf{List name} \\
\vspace{-2ex}
\rule{\textwidth}{1pt}
\begin{tabular}{ @{} p{1em} @{} p{\textwidth-11em} @{} >{\centering\arraybackslash}p{10em} @{} }
-- & This is a sentence I am typing here (1) & Feb 2019 -- Nov 2020 \\
   & And this is the sentence below it (1.1) & \\
\end{tabular}

\vspace{1cm}

\textbf{The name of the other list} \\
\vspace{-2ex}
\rule{\textwidth}{1pt}
\begin{tabular}{ @{} p{1em} @{} p{\textwidth-11em} @{} >{\centering\arraybackslash}p{10em} @{} }
-- & This is a sentence I am typing here (2) & 2020 \\
   & And this is the sentence below it (2.1) & \\
\end{tabular}

\end{flushleft}

\end{document}

在此处输入图片描述


让我简单解释一下列定义。还请了解tabular环境并阅读记录array软件包

  • @{}将当前单元格列和后续单元格列之间的水平填充设置为零。
  • p{1em}定义一列单元格,宽度为 1em。每个单元格都是一个框,其中包含一个允许换行的段落。
  • p{\textwidth-11em}定义一列单元格,其宽度为文本主体的宽度减去 11em。您需要calc包来进行此类计算。(在定义中,有一列的宽度为 1em,另一列的宽度为 10em,因此第三列的宽度应为,\textwidth-11em以使整个表格跨越文本主体的整个宽度。)
  • >{\centering\arraybackslash}将以下单元格列中的文本设置为居中。\arraybackslash由于技术原因是必要的(请参阅包的文档array)。

如果您想要更多列,则需要相应地编辑列的定义。请注意,定义的列数必须与您使用&或为每行输入的单元格数相匹配\\

相关内容