如何仅为特定环境设置长度(在本例中为 paracol 的 parindent)?

如何仅为特定环境设置长度(在本例中为 paracol 的 parindent)?

是否可以专门为环境设置长度?我知道可以通过将命令放在\setlength之间来仅更改文档部分的长度{},但是当在文档中多次使用环境时,设置与环境使用次数相同的长度会非常麻烦。

在我的特定情况下,我只想更改\parindent环境paracol,而不更改文档的其余部分。我的问题的 MWE 是这样的。

\documentclass[a4paper]{article}
\usepackage{paracol,lipsum,microtype}
\usepackage[norsk,british]{babel}
\usepackage[utf8]{inputenc}
\begin{document}
\lipsum[1]
\begin{paracol}{2}
    \newlength{\LeftHeader}
    \switchcolumn[0]*[\subsection*{Norwegian\settowidth{\LeftHeader}{Norwegian}\hspace{0.5\textwidth}\hspace{-\LeftHeader} English}]
        \selectlanguage{norsk} Universitetet i Oslo ble opprettet 2. september 1811, eller det vil si: Den gangen het det Det kongelige Frederiks Universitet, og det gjorde det helt frem til 1939.
    \switchcolumn
        \selectlanguage{british} The University of Oslo was founded the second of september 1811, or actually: then it was called The royal Frederiks University, and it did so until 1939.
    \switchcolumn*
        \selectlanguage{norsk} Påls mor ble født syv år senere, unnfanget i de elleville fredsdager, født en kald februarlørdag i 1946.
    \switchcolumn
        \selectlanguage{british} Paul's mother was born seven years earlier, conceived during those wild days of peace, born on a cold february saturday in 1946.
\end{paracol}
\end{document}

enter image description here

应该\parindent在绿色块处保留,但在红色块处删除。如何仅针对环境更改此长度paracol,并针对全部 paracol整个文档中使用的环境?

答案1

由于环境定义了一个组,您可以在其中更新/定义命令,并且它将保留在该环境的本地。因此设置\parindent0pt内部paracol就足够了。

全球方法

为了实现更全球化的方法,添加

\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\AtBeginEnvironment{paracol}{\setlength{\parindent}{0pt}}

有效并提供一种一致的非侵入性方法来实现您的目标。

本地/手动方法

开始每paracol一个

\begin{paracol}{<num>}
  \setlength{\parindent}{0pt}%
  ...
\end{paracol}

在这两种情况下,结果都是:

enter image description here

相关内容