\hspace 在桌子前表現不佳

\hspace 在桌子前表現不佳

我發現一個問題,它的\hspace行為與我預期的不一樣。我給了它-5em,但它只編譯了大約-4.5em。更改字體系列會改變錯誤的數量,但我認為字體系列中的錯誤在 em 單位方面是恆定的。

\documentclass[extrafontsizes, 48pt]{memoir}
\usepackage[left=7cm, right=0cm]{geometry}

\begin{document}
\ttfamily
\newlength\savetabcolsep\setlength\savetabcolsep\tabcolsep\setlength\tabcolsep{0pt}
\newlength\leftitemspace\setlength\leftitemspace{5em}

Foo

\begin{tabular}{|p{\leftitemspace}|p{\linewidth}}
Foo & Bar\\
Foo 2 & Bar 2\\
Foo 3 & Bar3
\end{tabular}

\rule{1em}{1pt}

\hspace*{-\leftitemspace}      % here is the problem
\begin{tabular}{|p{\leftitemspace}|p{\linewidth}}
Foo & Bar\\
Foo 2 & Bar 2\\
\rule{\leftitemspace}{1pt} & Bar 3
\end{tabular}

\hspace{-\leftitemspace}\rule{\leftitemspace}{1pt}Bar


\setlength\tabcolsep\savetabcolsep
\end{document}

在下圖中,我嘗試水平對齊表格的垂直線:

hspace水平對齊問題

答案1

\hspace*{-\leftitemspace}% <<<<<<<<<<<<<<<<< Space removed
\begin{tabular}{|p{\leftitemspace}|p{\linewidth}}

在此輸入影像描述

請注意,範例文件中的行不是左對齊的,因為每行都開始一個新段落。如果您想讓內容從文字區域的左邊框開始,請\noindent在每個段落中新增或\parindent=0pt透過將其新增至序言來設定整個文件。

\noindent
\hspace*{-\leftitemspace}% <<<<<<<<<<<<<<<<< Space removed
\begin{tabular}{|p{\leftitemspace}|p{\linewidth}}

在此輸入影像描述

\parindent=0pt
\begin{document}

在此輸入影像描述

我建議在開發文件佈局時將該選項新增showframe至套件。geometry然後將指示文字/頁首/頁尾/頁邊距區域。

\usepackage[left=7cm, right=0cm,showframe]{geometry}

在此輸入影像描述

相關內容