如何解决错位和间距问题

如何解决错位和间距问题

我正在写一篇包含数学和英语的文章。请参阅下面的代码:

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[tracking]{microtype}
\usepackage{color}
\usepackage[sc,osf]{mathpazo}   % With old-style figures and real smallcaps.
\linespread{1.025}              % Palatino leads a little more leading



\usepackage[margin=0.8cm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{blindtext}

% Euler for math and numbers
\usepackage[euler-digits,small]{eulervm}
\AtBeginDocument{\renewcommand{\hbar}{\hslash}}


\usepackage{tabularx,lipsum,environ,amsmath,amssymb}

\makeatletter
\newcommand{\problemtitle}[1]{\gdef\@problemtitle{#1}}% Store problem title
\newcommand{\probleminput}[1]{\gdef\@probleminput{#1}}% Store problem input
\newcommand{\problemquestion}[1]{\gdef\@problemquestion{#1}}% Store problem question
\NewEnviron{problem}{
  \problemtitle{}\probleminput{}\problemquestion{}% Default input is empty
  \BODY% Parse input
  \par\addvspace{.5\baselineskip}
  \noindent
  \begin{tabularx}{\textwidth}{@{\hspace{\parindent}} l X c}
    \multicolumn{2}{@{\hspace{\parindent}}l}{\@problemtitle} \\% Title
    \textbf{Input:} & \@probleminput \\% Input
    \textbf{Question:} & \@problemquestion% Question
  \end{tabularx}
  \par\addvspace{.5\baselineskip}
}


\usepackage{ntheorem}

% No easy way of putting the theorem description in italics?
% It seems I need to define a new style...
\makeatletter
\newtheoremstyle{mystyle}% 
   {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\theorem@separator]}% 
   {\item[\hskip\labelsep \theorem@headerfont ##1\ ##2\ \textit{(##3)}\theorem@separator]}




\makeatother
\theoremstyle{mystyle}
\theoremheaderfont{\scshape}
\theorembodyfont{\upshape}

\newtheorem{theorem}{theorem}
\usepackage{amsmath}
\DeclareMathOperator{\Res}{Res}

\title{Computing Prime Set In  $\mathcal{O}(k)$ Time}
\author{She ssrma\\~\\ [email protected] \\~\\ IIdd Gandagar}

\date {Jan-2018}

\begin{document}
\maketitle

\textbf{Prime Set} \\
\textbf{Input : } An array $N$ such that $N[i] = i, 2\le i \le k-1$.\\
\textbf{Find : } $Q_{k-1} = \{p \in [k-1] \mid p \text { \hspace*{0.001cm} is \hspace*{0.001cm} prime}\}$ \\

编译后的文档为:

在此处输入图片描述

问题 :如何纠正错位(素数集错位)以及我写下 $p$ 是素数的地方存在间距问题?

答案1

我认为您应该设置专用的双列tabular环境。在下面的示例中,第一列的类型为l,第二列的类型为 ,p以允许换行(如果需要)。

另请注意,我建议更换

p \text { \hspace*{0.001cm} is \hspace*{0.001cm} prime}

\text{$p$ is prime}

更简单一点,不是吗?

在此处输入图片描述

\documentclass[11pt]{article}
%% I've simplified the preamble to the bare essentials
\usepackage[T1]{fontenc}
\usepackage[tracking]{microtype}
\usepackage[margin=0.8cm]{geometry}
\usepackage{amsmath} % for "\text" macro

\usepackage{newpxtext,newpxmath} % 'mathpazo' is obsolete
\useosf  
\linespread{1.025} %Palatino needs a little more leading
\usepackage[euler-digits,small]{eulervm}
\AtBeginDocument{\renewcommand{\hbar}{\hslash}}

\begin{document}

\noindent
\begin{tabular}{@{}lp{12cm}@{}}
\multicolumn{2}{@{}l}{\textbf{Prime Set}}\\
\textbf{Input} & An array $N$ such that $N[i] = i$, $2\le i \le k-1$\\
\textbf{Find}  & $Q_{k-1} = \{\, p \in [k-1] \mid \text{$p$ is prime} \,\}$
\end{tabular}

\end{document}

相关内容