hfill 对齐不起作用

hfill 对齐不起作用

我使用下面的代码来格式化一些信息,但红线之前的最后一行没有右对齐。我在代码中找不到问题所在。有什么建议吗?谢谢。

在此处输入图片描述

\documentclass[11pt,a4paper]{article}
\usepackage{color}
\usepackage[T1]{fontenc}

\setlength{\parindent}{0em}

\begin{document}
\begin{samepage}
    {\color{blue}\hrule height 2pt}
    \vspace{.1\baselineskip}
    {\Large Some important text}
    \hfill
    {\large \textit{And more}} \\ 
    {\small More some text}
    \hfill \textit{Important person:}~Me \\[.3\baselineskip]
    {Year:~2018, Volume:~1, Nr.:~1}
    \hfill
    Date 1: YYYY-MM-DD\\ 
    {Classification:~A}
    \hspace{\fill}
    Date 2: YYYY-MM-DD
    \vspace{.3\baselineskip}
    {\color{red}\hrule height 2pt}
    \end{samepage}
\end{document} 

答案1

您必须在几个地方保护行尾,否则那里可能会出现空格。

在此处输入图片描述

\documentclass[11pt,a4paper]{article}
\usepackage{color}
\usepackage[T1]{fontenc}

\setlength{\parindent}{0em}

\begin{document}
\begin{samepage}
    {\color{blue}\hrule height 2pt}
    \vspace{.1\baselineskip}
    {\Large Some important text}
    \hfill
    {\large \textit{And more}} \\ 
    {\small More some text}
    \hfill \textit{Important person:}~Me \\[.3\baselineskip]
    {Year:~2018, Volume:~1, Nr.:~1}
    \hfill
    Date 1: YYYY-MM-DD\\ 
    {Classification:~A}
    \hspace{\fill}
    Date 2: YYYY-MM-DD% <- Here
    \vspace{.3\baselineskip}% <- Here
    {\color{red}\hrule height 2pt}% <- Here (this one isn't necessary, actually)
    \end{samepage}
\end{document}

编辑:行末有注释?真的吗?

某物 每个人 已经 问题 (“每个人”链接是最好的:P)。

这里发生的情况是(在正常情况下)TeX 将换行符解释为空格字符,因此当您输入:

abc
def

结果与您输入以下内容相同:

abc def

(请注意后面的空格c)。但是当您输入:

abc%
def

TeX 会忽略 之后的所有内容%,包括换行符,因此它本质上与以下内容相同:

abcdef

这就是为什么你DD的代码后面有一个空格。

如果你有时间,我建议你读一下koleygr 的回答在这里如果你想要更详细的解释,我的回答这里

答案2

你可以\vspace{.3\baselineskip}用替换\vskip.3\baselineskip,你的问题就解决了。TeX\vskip原语比 LaTeX 的原语自然得多,\vspace后者不会结束段落,而是在当前段落的行之间插入垂直空格(使用\vadjust原语)。

A)当你输入时会发生什么

 end words.
 \vskip.3\baselineskip

然后\vskip结束段落(使用\par在之前插入的内部内容\vskip),这\par会占用结束行的空间。这是处理每个段落的正常行为。

B)当你输入时会发生什么

end words.
\vspace{.3\baselineskip}
{\color{red}\hrule height 2pt}

然后我们end words.接着是空格(从结束行开始),接着是\vadjust对象(从开始\vspace),接着是空格(从第二结束行开始),接着是颜色设置(从\color宏开始),接着是\par,由原始插入\hrule。第二个空格被这个占用,\par但第一个空格不会被占用。

答案3

我会使用 aminipage而不是samepage。您在代码中添加了几个不需要的空格;例如,在 和x \hspace{<length>}之间添加了一个空格x。在您的情况下,这并不重要,因为您添加了无限的胶水,在其他情况下则很重要。

此外,行尾也算作空格;在某些情况下,行尾会被删除,而其他情况下则不会。最好使用更简洁的代码,以更清楚地显示您的意图。

\documentclass[11pt,a4paper]{article}
\usepackage{xcolor}

\begin{document}

\noindent
\begin{minipage}[b]{\textwidth}
{\color{blue}\hrule height 2pt}

\vspace{.3\baselineskip}

{\Large Some important text\hfill
\textit{And more}\par}%<-- to preserve \par at the font size change

{\small More some text}\hfill
\textit{Important person:}~Me

\vspace{.3\baselineskip}

Year:~2018, Volume:~1, Nr.:~1\hfill
Date 1: YYYY-MM-DD

Classification:~A\hfill
Date 2: YYYY-MM-DD

\vspace{.3\baselineskip}

{\color{red}\hrule height 2pt}
\end{minipage}

\end{document} 

命令中的尾部空格被删除\par(自动插入一个空白行)。最好是\vspace发出段落之间就像上面的代码一样。此外,控制序列后面的空格/结束行(在上面的代码中\hfill)在 TeX 中是看不到的。

我设置了整个第一行的\Large大小,因为\large右边的部分几乎无法区分;请注意\par右括号之前的大小,这确保\Large使用了正确的行间间距。

在此处输入图片描述

相关内容