![包含 p 列的表中放错 noalign 错误](https://linux22.com/image/353912/%E5%8C%85%E5%90%AB%20p%20%E5%88%97%E7%9A%84%E8%A1%A8%E4%B8%AD%E6%94%BE%E9%94%99%20noalign%20%E9%94%99%E8%AF%AF.png)
我有一些 LaTeX 代码,用于绘制某种表格(UML 用例描述),其中包含波斯语文本。无论我是否\\
在每一行末尾添加,都会出现以下错误:
Misplaced \noalign.
\hline ->\noalign
{\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet...
l.52 \hline
表格渲染正确,但我愿意消除错误,因为代码中会有几十个这样的表格。以下是文档:
\documentclass[a4paper, 11pt]{article}
\usepackage{array}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Niloofar}
\setdigitfont{XB Niloofar}
\setlatintextfont[Scale=1]{Times New Roman}
\graphicspath{ {./} }
\graphicspath{ {./} }
\begin{document}
\maketitle
\newpage
\section*{
موارد استفاده
}
\begin{tabular}{|p{\textwidth}|}
\hline
\centering Use Case: Check Availability for Order \\
\hline
\begin{flushleft}
\begin{latin}
ID: 0
\end{latin}
\end{flushleft}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
توضیح مختصر:
\newline
بررسی میکند که به تعداد مورد نیاز برای سفارش در دست بررسی قطعه در انبار وجود دارد یا نه.
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
کنشگر
اصلی:
\newline
مشتری
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
کنشگر
ثانویه
:
\newline
کارمند انبارداری
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
پیششرطها
:
\newline
\begin{enumerate}
\item ثبت سفارش توسط مشتری
\end{enumerate}
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
روند اصلی:
\newline
\begin{enumerate}
\item
این
UseCase
پس از ثبت سفارش توسط مشتری آغاز میشود
\item
برای هر یک از قطعات موجود در درخواست مشتری، تعداد مورد نیاز از آن برای تولید محصول با تعداد موجود در انبار مقایسه میشود
\begin{enumerate}
\item
در صورت کافی نبودن موجودی
برای هر قطعه
\lr{Estimate Order Cost}
اجرا میشود
\end{enumerate}
\item
پیش فاکتور برای مشتری آماده میشود.
\end{enumerate}
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
پسشرطها
:
\newline
آماده شدن پیشفاکتور برای سفارش
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\begin{flushright}
روند
جایگزین:
\newline
ندارد
\end{flushright}
%%%%%%%%%%%%%%%%%%
\hline
\end{tabular}
\end{document}
它是使用 OS X 上的 XeLatex 进行编译的。
答案1
你不想flushright
,你做\\
之前想要\hline
。
\documentclass[a4paper, 11pt]{article}
\usepackage{array}
\usepackage{xepersian}
\settextfont[Scale=1]{Scheherazade}
\setdigitfont{Scheherazade}
\setlatintextfont[Scale=1]{Times New Roman}
\begin{document}
\section*{
موارد استفاده
}
\begin{tabular}{|>{\raggedright\arraybackslash}p{\textwidth}|}
\hline
\centering Use Case: Check Availability for Order \tabularnewline
\hline
\begin{latin}
ID: 0
\end{latin}
\\
\hline
توضیح مختصر:
\newline
بررسی میکند که به تعداد مورد نیاز برای سفارش در دست بررسی قطعه در انبار وجود دارد یا نه.
\\
\hline
کنشگر
اصلی:
\newline
مشتری
\\
\hline
کنشگر
ثانویه
:
\newline
کارمند انبارداری
\\
\hline
پیششرطها
:
\newline
\begin{enumerate}
\item ثبت سفارش توسط مشتری
\end{enumerate}
\\
\hline
روند اصلی:
\newline
\begin{enumerate}
\item
این
UseCase
پس از ثبت سفارش توسط مشتری آغاز میشود
\item
برای هر یک از قطعات موجود در درخواست مشتری، تعداد مورد نیاز از آن برای تولید محصول با تعداد موجود در انبار مقایسه میشود
\begin{enumerate}
\item
در صورت کافی نبودن موجودی
برای هر قطعه
\lr{Estimate Order Cost}
اجرا میشود
\end{enumerate}
\item
پیش فاکتور برای مشتری آماده میشود.
\end{enumerate}
\\
\hline
پسشرطها
:
\newline
آماده شدن پیشفاکتور برای سفارش
\\
\hline
روند
جایگزین:
\newline
ندارد
\\
\hline
\end{tabular}
\end{document}
答案2
稍加修改(缩短并且没有波斯语和 XeLaTeX)即可运行\\ \hline
。
\documentclass[a4paper, 11pt]{article}
\usepackage{array}
\begin{document}
\begin{tabular}{|p{\textwidth}|}
\hline
%\centering
Use Case: Check Availability for Order \\
\hline
\begin{flushleft}
%\begin{latin}
ID: 0
%\end{latin}
\end{flushleft}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxxx xxxxx:
\newline
xxxxx xxxxxx xx xx xxxxx xxxx xxxx xxxx xxxxx xx xxx xxxxx xxxx xx
xxxxx xxxx xxxx xx xx.
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxxxx xxxx:
\newline
xxxxx
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxxxx xxxxxx :
\newline
xxxxxx xxxxxxxxx
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxxxxxxxx :
\newline
\begin{enumerate}
\item xxx xxxxx xxxx xxxxx
\end{enumerate}
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxx xxxx:
\newline
\begin{enumerate}
\item
xxx UseCase xx xx xxx xxxxx xxxx xxxxx xxxx xxxxxx
\item
xxxx xx xx xx xxxxx xxxxx xx xxxxxxx xxxxxx xxxxx xxxx xxxx xx xx
xxxx xxxxx xxxxx xx xxxxx xxxxx xx xxxxx xxxxxx xxxxxx
\begin{enumerate}
\item
xx xxxx xxxx xxxxx xxxxxx xxxx xx xxxx Estimate Order Cost xxxx
xxxxxx
\end{enumerate}
\item
xxx xxxxxx xxxx xxxxx xxxxx xxxxxx.
\end{enumerate}
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxxxxxxx :
\newline
xxxxx xxx xxxxxxxxxx xxxx xxxxx
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\begin{flushright}
xxxx xxxxxxx:
\newline
xxxxx
\end{flushright}
%%%%%%%%%%%%%%%%%%
\\ \hline
\end{tabular}
\end{document}