にうむろぐ

暇なときに何か喋ります

【LaTeX】\newenvironment で空白が挿入されてしまう

症状

\newenvironmentで環境を入れ子すると、頭に半角スペースが挿入されてしまうことがある。(されない時もある。)

半角スペースが挿入されてしまうところに \ignorespaces を入れることで解決した。

入力(tex

\documentclass{jsarticle}
\usepackage{framed}

\newenvironment{myframed1}{%
    \vspace{-1zw}%
    \begin{oframed}%
}{\end{oframed}}

\newenvironment{myframed2}{%
    \vspace{-1zw}%
    \begin{oframed}%
    \noindent%
}{\end{oframed}}

\newenvironment{myframed3}{%
    \vspace{-1zw}%
    \begin{oframed}%
    \noindent\hspace{-0.33em}%
}{\end{oframed}}

\newenvironment{myframed4}{%
    \vspace{-1zw}%
    \begin{oframed}%
    \noindent\ignorespaces%
}{\end{oframed}}

\begin{document}

これは普通。段落で始まる。
\begin{myframed1}
  ああああああああああああああああああああああああああ\par
  あああああああああああああああああああああああああああああああああああああああ
  あああああああああああああ
\end{myframed1}

\verb|\noindent|は効いてるが、そのあとに半角スペースが入ってる。
\begin{myframed2}
  ああああああああああああああああああああああああああ\par
  あああああああああああああああああああああああああああああああああああああああ
  あああああああああああああ
\end{myframed2}

\verb|\hspace|でその場しのぎ。
\begin{myframed3}
  ああああああああああああああああああああああああああ\par
  あああああああああああああああああああああああああああああああああああああああ
  あああああああああああああ
\end{myframed3}

\verb|\ignorespaces|というのがあるらしい。これ採用。
\begin{myframed4}
  ああああああああああああああああああああああああああ\par
  あああああああああああああああああああああああああああああああああああああああ
  あああああああああああああ
\end{myframed4}

\end{document}

出力(pdf)

f:id:geniusium:20180920140123p:plain