将文本与列对齐

将文本与列对齐

在此处输入图片描述

上述文本由以下命令生成:

\documentclass[a4paper]{article}
\usepackage[margin=0.8in]{geometry}
\usepackage{ifxetex}
  \RequireXeTeX
  \usepackage{fontspec,multicol}
     \newcommand\dn{\catcode`\~=12
       \fontspec[Script=Devanagari,Mapping=velthuis-sanskrit]{Sanskrit 2003}}
      \setlength{\columnseprule}{1.5pt}
       \setlength{\fboxrule}{2pt}
    \begin{document}
   \title{\fbox{{\dn\Huge lalitaa tri"satii stotram}}\vspace*{-1.8cm}}
     \date{}
      \maketitle
       \begin{flushleft}
        {\dn\Large asya "sriilalitaatri"satii stotra mahaamantrasya | bhagavaan hayagriiva .r.si.h | anu.s.tup chanda.h | "sriilalitaamahaatripurasundarii devataa | ai.m biijam | sau.h "sakti.h | klii.m kiilakam |}
          \begin{multicols}{2}
          {\dn\large kakaararuupaa kalyaa.nii kalyaa.nagu.na"saalinii |\\
            kalyaa.na"sailanilayaa kamaniiyaa kalaavatii ||1||
     kamalaak.sii kalma.saghnii karu.naam.rta saagaraa | \\
     kadambakaananaavaasaa kadamba kusumapriyaa  ||2||
          \end{document}

现在我的问题是左侧列中的文本和列分隔符之间的宽度明显大于右侧列中的宽度。如何纠正这个问题。

答案1

我不太清楚,你想实现什么。输入是什么,几行手动换行?较长的文本自动换行?结果应该是什么样的(行长,空格放在哪里,......)?或 是什么|意思||1||

可以轻松生成垂直线周围具有对称空间的图像。这可以通过简单的 来完成tabular。示例:

\documentclass[a4paper]{article}
\usepackage[margin=0.8in]{geometry}
\usepackage{ifxetex}
\RequireXeTeX
\usepackage{fontspec,multicol}
\newcommand\dn{\catcode`\~=12
\fontspec[Script=Devanagari,Mapping=velthuis-sanskrit]{Sanskrit 2003}}
\setlength{\columnseprule}{1.5pt}
\setlength{\fboxrule}{2pt}

\usepackage{pbox}
\newcommand*{\tabpbox}{%
  \pbox{\dimexpr.5\linewidth-\tabcolsep-.5\arrayrulewidth\relax}%
}

\begin{document}
\begin{center}
  \setlength{\arrayrulewidth}{\columnseprule}
  \setlength{\tabcolsep}{\columnsep}
  \dn\large
  \begin{tabular}{@{}l|l@{}}
    \tabpbox{%
      kakaararuupaa kalyaa.nii kalyaa.nagu.na"saalinii\\
      kalyaa.na"sailanilayaa kamaniiyaa kalaavatii |
    }%
    & 
    \tabpbox{%
      kamalaak.sii kalma.saghnii karu.naam.rta saagaraa\\
      kadambakaananaavaasaa kadamba kusumapriyaa |
    }%
  \end{tabular}
\end{center}
\end{document}

结果

评论:

答案2

您正在使用flushleft环境并给出明确的换行符,因此无法填充行。

\documentclass[a4paper]{article}
\usepackage[margin=0.8in]{geometry}
\usepackage{ifxetex}
\RequireXeTeX

\usepackage{fontspec,multicol}
\usepackage{polyglossia}
\setmainlanguage{devanagari}

\setmainfont[Mapping=velthuis-sanskrit]{Devanagari MT} % I don't have Sanskrit 3000

\newcommand\dn{\catcode`\~=12 }
\setlength{\columnseprule}{1.5pt}
\setlength{\fboxrule}{2pt}

\begin{document}

\begin{multicols}{2}
\dn\large kakaararuupaa kalyaa.nii kalyaa.nagu.na"saalinii |
kalyaa.na"sailanilayaa kamaniiyaa kalaavatii ||1||
kamalaak.sii kalma.saghnii karu.naam.rta saagaraa |
kadambakaananaavaasaa kadamba kusumapriyaa  ||2||
\end{multicols}

\end{document}

在此处输入图片描述

相关内容