Q : LaTeX itemize
환경 의 “적절한”들여 쓰기를 어떻게 얻을 수 auctex
있습니까?
여기 환경 item
에서 함께하고 싶은 곳 이 itemize
있습니다.
\item
선은 환경의 시작과 관련하여 두 칸 들여 쓰기- 항목의 연속 줄은 줄에 대해 추가로 두 칸 들여 쓰기
\item
됩니다.
이것이 내가보고 / 기대하는 것입니다 :
\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
note how the *initial* item line is indented two spaces, and the
continuation lines are indented another two spaces.
\end{itemize}
LaTeX-item-indent
변수 를 사용하여 항목의 초기 들여 쓰기를 조정할 수 있습니다 -2
. 기본값은 입니다. 이 기본으로, 나는의 바람직하지 않은 행동을 얻을 \item
들여 쓰기되지 않는,하지만 내가 할 추가로 두 개의 공백에 의해 상쇄되는 연속 라인의 원하는 동작을 얻을 :
\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
note how the *initial* item line is *NOT* indented two spaces,
but the continuation lines are indented two spaces.
\end{itemize}
줄에 원하는 들여 쓰기 (두 공백) LaTeX-item-indent
를 0
얻 도록 설정 \item
했지만 연속 줄의 원하는 동작의 두 번째 절반이 추가 두 공백으로 오프셋 되지는 않습니다 .
\begin{itemize}
\item Here's a really long item in a LaTeX itemize environment;
note how the *initial* item line is indented two spaces, but the
continuation lines are *NOT* indented an additional two spaces.
\end{itemize}
그래서 하나 얻을 않는 방법을 모두 원하는 행동을 :
\item
두 줄 의 처음 들여 쓰기- 연속 선에 추가로 두 칸이 들여 쓰기 되었습니까?
(참고 관련 SO 스레드 .)
답변
@sykora의 의견 (setq LaTeX-item-indent -2 LaTeX-indent-level 4)
은 거의 있지만, 다른 모든 환경에도 영향을 미칩니다 . 예를 들어, 우리는 또한
\begin{abstract}
This indents to the 4th column, which is way too far!
\end{abstract}
다음 함수는 Tassilo Horn 의 오래된 코드 스 니펫을 만듭니다. 중첩 된 환경을 포함하여 들여 쓰기가 정확합니다. 그것은 작동 itemize
, enumerate
및 description
부팅, 환경 :
(defun LaTeX-indent-item ()
"Provide proper indentation for LaTeX \"itemize\",\"enumerate\", and
\"description\" environments.
\"\\item\" is indented `LaTeX-indent-level' spaces relative to
the the beginning of the environment.
Continuation lines are indented either twice
`LaTeX-indent-level', or `LaTeX-indent-level-item-continuation'
if the latter is bound."
(save-match-data
(let* ((offset LaTeX-indent-level)
(contin (or (and (boundp 'LaTeX-indent-level-item-continuation)
LaTeX-indent-level-item-continuation)
(* 2 LaTeX-indent-level)))
(re-beg "\\\\begin{")
(re-end "\\\\end{")
(re-env "\\(itemize\\|\\enumerate\\|description\\)")
(indent (save-excursion
(when (looking-at (concat re-beg re-env "}"))
(end-of-line))
(LaTeX-find-matching-begin)
(current-column))))
(cond ((looking-at (concat re-beg re-env "}"))
(or (save-excursion
(beginning-of-line)
(ignore-errors
(LaTeX-find-matching-begin)
(+ (current-column)
(if (looking-at (concat re-beg re-env "}"))
contin
offset))))
indent))
((looking-at (concat re-end re-env "}"))
indent)
((looking-at "\\\\item")
(+ offset indent))
(t
(+ contin indent))))))
(defcustom LaTeX-indent-level-item-continuation 4
"*Indentation of continuation lines for items in itemize-like
environments."
:group 'LaTeX-indentation
:type 'integer)
(eval-after-load "latex"
'(setq LaTeX-indent-environment-list
(nconc '(("itemize" LaTeX-indent-item)
("enumerate" LaTeX-indent-item)
("description" LaTeX-indent-item))
LaTeX-indent-environment-list)))
나는 내가 놓친 매우 간단한 설정이 있다고 생각할 수는 없지만 이것이 Rube Goldberg 버전입니다. 아직도, 그것은 작동하고 그것은 몇 년 동안 가려움증을 긁 습니다 .
편집 : @ sykora의 의견에 따라 하드 코딩을 꺼내기 위해 기능을 수정했습니다. \item
s는 이제 들여 쓰기 LaTeX-indent-level
공간입니다. 연속 선은 새로운 변수의 값을, 수 LaTeX-indent-level-item-continuation
당신이 후자의 두 배 값을 바인딩하지 않으려는 경우, 또는 LaTeX-indent-level
.
그것이 일어날 때, 결합하고 LaTeX-indent-level-item-continuation
8로 설정 하면 미적으로 좋은 결과를 얻을 수 있습니다. 나는 그것으로 전환 할 수도 있습니다 :
\begin{itemize}
\item Example with LaTeX-indent-level-item-continuation set to 8.
\item Here's a really long item that will spill over onto the
continuation line; text lines up pretty nicely this way!
\begin{itemize}
\item And here's a sub-item, with the environment
indented to the relevant continuation line.
\end{itemize}
\end{itemize}