并排小页面大小问题

并排小页面大小问题

我一直在用 LaTeX 撰写我的简历(为了华丽,也为了更好地使用 LaTeX),我在使用我编写的一个名为 的宏时遇到了一些问题\nrccolstring

\nrccolstring应该将两个文本字段并排放置,并占据分配给它们的所有空间。第一个小框左对齐,第二个小框右对齐。

当我的宏遍布整个页面时,它工作得很好,但是当我将它嵌套在另一个小框(例如我当前用来控制列的小框)中时,它就失效了。

当我运行附加的代码时,我得到以下输出:在此处输入图片描述

那么这是什么一回事?

为什么第二个宏会失败?我收到了几个警告(如下所示),但文档编译正常。

  Overfull \hbox (2.22221pt too wide) in paragraph at lines 33--34<br>
  Underfull \hbox (badness 10000) in paragraph at lines 33--34

这是怎么回事?显然我不明白迷你页面的尺寸调整是如何进行的。

我是否应该使用迷你盒子以外的其他东西来达到效果?

我最初考虑过使用列或表格,但我想要一些可以自动调整单元格大小以占据整个空间\textwidth并且还要确保单元格足够宽的东西(假设整体\textwidth足够大以容纳所有内容)。

有什么想法吗?

\documentclass{article}
\usepackage[top=0.5in, bottom=0.5in, left=0.5in, right=0.5in]{geometry}

\usepackage{calc}
\usepackage{blindtext}

%----------------------- Registers-----------------------------%
\newlength{\registera}
\newlength{\registerb}
%-------------------- Text Field Macros-------------------------%
\newcommand{\CompanyName}{This is a Fictional Company Name}
\newcommand{\Description}{\blindtext}

%-------------------- Formatting Macros------------------------%

\newcommand{\nrccolstring}[2]{
    \begingroup
    \setlength{\registera}{\widthof{\noindent \raggedright #1}}%
    \setlength{\registerb}{\dimexpr \textwidth - \registera \relax}%
    \noindent \begin{minipage}[t]{\registera}
        \noindent \raggedright #1\\ 
    \end{minipage}
    \noindent \begin{minipage}[t]{\registerb}
        \noindent \raggedleft #2\\
    \end{minipage}
\endgroup}

%------------------------ Body Text ---------------------------%

\begin{document}
    \blindtext
    \par \bigskip
    \par\nrccolstring{\textbf{\CompanyName}}{2011-Present} % Macro works here!
    \par
    \Description
    \par \bigskip

    \noindent \begin{minipage}[t]{0.5\textwidth}
        \par\nrccolstring{\textbf{\CompanyName}}{2011-Present}  % Macro doesn't work here!
        \par
        \Description
    \end{minipage}
    \noindent \begin{minipage}[t]{0.5\textwidth}
        \Description
    \end{minipage}
\end{document}

答案1

这是您当前文档的更新版本:

在此处输入图片描述

\documentclass{article}
\usepackage[top=0.5in, bottom=0.5in, left=0.5in, right=0.5in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{calc,blindtext}% http://ctan.org/pkg/{calc,blindtext}

%----------------------- Registers-----------------------------%
\newlength{\registera}
\newlength{\registerb}
%-------------------- Text Field Macros-------------------------%
\newcommand{\CompanyName}{This is a Fictional Company Name}
\newcommand{\Description}{\blindtext}

%-------------------- Formatting Macros------------------------%

\newcommand{\nrccolstring}[2]{%
  \begingroup
  \setlength{\registera}{\widthof{#1}}%
  \setlength{\registerb}{\dimexpr \linewidth - \registera \relax}%
  \noindent\begin{minipage}[t]{\registera}
    \raggedright #1
  \end{minipage}%
  \begin{minipage}[t]{\registerb}
    \raggedleft #2
  \end{minipage}%
\endgroup}

%------------------------ Body Text ---------------------------%

\begin{document}
  \blindtext\par
  \bigskip
  \nrccolstring{\textbf{\CompanyName}}{2011-Present} % Macro works here!
  \par
  \Description\par
  \bigskip

  \noindent \begin{minipage}[t]{\dimexpr0.5\textwidth-0.5\columnsep}
    \nrccolstring{\textbf{\CompanyName}}{2011-Present}  % Macro doesn't work here!
    \par\Description
  \end{minipage}\hfill%
  \begin{minipage}[t]{\dimexpr0.5\textwidth-0.5\columnsep}
    \Description
  \end{minipage}
\end{document}

最显著的变化包括:

  • 用于%删除虚假空格;LaTeX 会忽略空格数学模式,但不在文本模式下。它确实会忽略连续空格,但单个空格仍然可见/设置。请参阅%行末百分号 ( ) 有什么用?
  • 使用\linewidth而不是\textwidth。这样可以在不超出框边界的情况下设置\nrccolstring内部。minipage
  • 删除\\段落末尾的内容。

相关内容