更新:问题已经解决\shorthandoff{:}
通过在环境之前和\shorthandon{:}
之后添加xltabular
(感谢 Jasper)。该问题是由于使用语言french
自动在分号前添加空格而引起的。
这篇文章很长,所以我可以充分解释我遇到的问题,请随意纠正和编辑任何内容和/或评论。我会回答我知道答案的每一个问题。
TeX 信息:我使用 PDFLaTeX 编译,在 TeXMaker 下编写,版本是 3.141592653-2.6-1.40.25
xltabular
所以我有一个使用命令制作的表格\mulicolumn
。与许多其他用户一样,我观察到这个表格的第一行有一个不需要的小缩进。我已经浏览论坛一个星期了,却没有找到解决问题的方法。以下是我迄今为止对我的代码提出的问题/答案:
- egreg 和 Karl Hagen 的解决方案这个问题:添加
@{}
和/或\dimexpr
和\tabcolsep
。无论命令的长度或数量是多少,添加其中一个或另一个或两者均不会使我的文档缩进\tabcolsep
。此外,还提供了相同的解决方案这里. 这些都不能解决问题。 - 徐旺的疑问和沃纳的解答这个问题:在表格行的开头添加一个
\noindent
。我这边的文档没有任何变化。 - 所有解决方案这个问题:
\noindent
之前\begin{xltabular}
;flushleft
环境;;\setlength{\parindent}{0pt}
等等:也没有变化。 - 来自
\ignorespaces
这里, 不用找了。
因此我开始编写我的 MWE,理论上只使用所需的包,向您展示我的最佳尝试以及迄今为止尝试过的内容,但输出略有不同,因为没有出现缩进:
\documentclass[11pt,fleqn,french]{report}
\usepackage{geometry}
\geometry{a4paper}
\usepackage[utf8]{inputenc}
\usepackage[OT1]{fontenc}
\usepackage{makecell,hhline,longtable}
\usepackage[longtable]{multirow}
\usepackage{xltabular}
\renewcommand\tabularxcolumn[1]{m{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}}
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%
\begin{document}
\begin{center}
\begin{xltabular}{0.75\linewidth}{|c|L{40mm}@{}L{2mm}L{15mm}|}
\hhline{|t:====:t|}
\multicolumn{1}{|c|}{\textbf{Part}} & \multicolumn{3}{c|}{\textbf{Data}} \endfirsthead \hline
Material \textit{$\alpha$} & Mass\newline Volume\newline Density\newline Proportion & :\newline :\newline :\newline : & \textit{$m_{\alpha}$}\newline \textit{$v_{\alpha}$}\newline \textit{$\rho_{\alpha}$}\newline \textit{$p_{\alpha}$}\\ \hline
Cylinder & Mass\newline Volume\newline Density & :\newline :\newline : & \textit{$m_{cyl}$}\newline \textit{$v_{cyl}$}\newline \textit{$\rho_{cyl}$}\\
\hhline{|b:====:b|}
\end{xltabular}
\end{center}
\end{document}
为了不污染 MWE 1.0,我减少了软件包的数量,我首先想到的是,问题出在其中一些软件包之间的不兼容性。因此,这是我的 MWE 2.0,其中包含我使用和需要的所有软件包,以及它的结果:
\PassOptionsToPackage{x11names}{xcolor}
\documentclass[11pt,fleqn,french]{report}
\usepackage{geometry}
\geometry{a4paper}
\usepackage{background}
\backgroundsetup{contents=MWE}
\usepackage[utf8]{inputenc}
\usepackage[OT1]{fontenc}
\usepackage{pdflscape}
\usepackage{rotating}
\usepackage{booktabs,bigstrut}
\usepackage[parfill]{parskip}
\usepackage{graphicx,float}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{fancyhdr}
\usepackage{epstopdf}
\usepackage{lipsum}
\usepackage{babel,csquotes,xpatch}
\usepackage{ifthen}
\usepackage{array}
\usepackage{textcomp}
\usepackage{hyperref}
\usepackage{nomencl}
\usepackage[toc,acronym]{glossaries}
\usepackage[backend=biber,style=numeric-comp,sorting=none]{biblatex}
\usepackage{microtype}
\usepackage{caption,subfloat,subcaption}
\usepackage{wrapfig}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfmodule{plot}
\usepgfplotslibrary{fillbetween}
\usepackage{tikz}
\usetikzlibrary{calc,shapes,decorations.pathmorphing,backgrounds,plotmarks,3d,patterns}
\usepackage{makecell,hhline,longtable}
\usepackage[longtable]{multirow}
\usepackage[column=0]{cellspace}
\newcommand{\imageborder}{2pt}
\setlength\cellspacetoplimit{\imageborder}
\setlength\cellspacebottomlimit{\imageborder}
\usepackage[export]{adjustbox}
\usepackage{xltabular}
\renewcommand\tabularxcolumn[1]{m{#1}}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}m{#1}}
\begin{document}
\begin{center}
\begin{xltabular}{0.75\linewidth}{|c|L{40mm}L{2mm}L{15mm}|}
\hhline{|t:====:t|}
\multicolumn{1}{|c|}{\textbf{Part}} & \multicolumn{3}{c|}{\textbf{Data}} \endfirsthead \hline
Material \textit{$\alpha$} & Mass\newline Volume\newline Density\newline Proportion & :\newline :\newline :\newline : & \textit{$m_{\alpha}$}\newline \textit{$v_{\alpha}$}\newline \textit{$\rho_{\alpha}$}\newline \textit{$p_{\alpha}$}\\ \hline
Cylinder & Mass\newline Volume\newline Density & :\newline :\newline : & \textit{$m_{cyl}$}\newline \textit{$v_{cyl}$}\newline \textit{$\rho_{cyl}$}\\
\hhline{|b:====:b|}
\end{xltabular}
\end{center}
\end{document}
如您所见,表格中每行的第一个“子行”上都有明显的缩进。我第一次尝试的是 3 列表格,因此包括\multicolumn{2}{}{}
用于数据的 ,并且缩进应用于“:”和变量。我猜这个问题出现在 的第二列\multicolumn
,但我不明白原因。
任何帮助都将非常感谢,谢谢您的时间和考虑。
答案1
重现您的问题的 MWE 是(我稍微简化了您的代码):
\documentclass[11pt,french]{report}
\usepackage[utf8]{inputenc}
\usepackage[OT1]{fontenc}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{xltabular}
\usepackage{hhline}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\begin{document}
\begin{center}
\begin{xltabular}{0.75\linewidth}{|c|L{40mm}@{}L{2mm}L{15mm}|}
\hhline{|t:====:t|}
\textbf{Part}
& \multicolumn{3}{c|}{\textbf{Data}} \endfirsthead \hline
Material $\alpha$
& Mass\newline Volume\newline Density\newline Proportion
& :\newline :\newline :\newline :
& $m_{\alpha}$\newline $v_{\alpha}$\newline $\rho_{\alpha}$\newline $p_{\alpha}$\\ \hline
Cylinder
& Mass\newline Volume\newline Density
& :\newline :\newline :
& $m_{cyl}$\newline $v_{cyl}$\newline $\rho_{cyl}$\\
\hhline{|b:====:b|}
\end{xltabular}
\end{center}
\end{document}
第一行冒号前面有空格的原因是,如果将语言加载,babel
包会在冒号前添加这个空格。french
不同的方式来解决这个问题。一种解决方案是将\shorthandoff{:}
相关代码放在\shorthandon{:}
其后面,以暂时停用此行为。或者,您可以\NoAutoSpacing
在要停用默认间距机制的相关单元格的开头添加:
\documentclass[11pt,french]{report}
\usepackage[utf8]{inputenc}
\usepackage[OT1]{fontenc}
\usepackage[a4paper]{geometry}
\usepackage{babel}
\usepackage{xltabular}
\usepackage{hhline}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\begin{document}
\begin{center}
\begin{xltabular}{0.75\linewidth}{|c|L{40mm}@{}L{2mm}L{15mm}|}
\hhline{|t:====:t|}
\textbf{Part}
& \multicolumn{3}{c|}{\textbf{Data}} \endfirsthead \hline
Material $\alpha$
& Mass\newline Volume\newline Density\newline Proportion
& \NoAutoSpacing :\newline :\newline :\newline :
& $m_{\alpha}$\newline $v_{\alpha}$\newline $\rho_{\alpha}$\newline $p_{\alpha}$\\ \hline
Cylinder
& Mass\newline Volume\newline Density
& \NoAutoSpacing :\newline :\newline :
& $m_{cyl}$\newline $v_{cyl}$\newline $\rho_{cyl}$\\
\hhline{|b:====:b|}
\end{xltabular}
\end{center}
\end{document}