
내 주요 문서를 1.5 간격으로 설정하고 들여쓰기된 인용문에 단일 간격을 두려고 합니다.
나는 그것을 수행하는 좋은 방법이 제안되었음을 알았습니다.인용구 스타일을 어떻게 지정하나요?, 그러나 단락 내의 들여쓰기 인용에 이를 적용하려고 하면 앞의 텍스트에 단일 간격이 적용됩니다.
이전에 가짜 단일 공백을 적용하는 메커니즘은 무엇이며 이를 수정하는 방법은 무엇입니까?
\lipsum[66]
해결 방법은 첫 번째 와 사이에 줄바꿈을 하는 것입니다 \begin{quote}
. 그러나 이는 동일한 단락에 속해야 하므로 의미상 '잘못된' 것입니다.
MWE:
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}
\usepackage{setspace}
\usepackage{etoolbox}
\onehalfspacing
\AtBeginEnvironment{quote}{\singlespacing}
\begin{document}
\lipsum[66]
\begin{quote}
\lipsum[75]
\end{quote}
\lipsum[66]
\end{document}
답변1
TeX 및 LaTeX의 일부 설정은 전체 단락에 적용되며 줄 간격은 \onehalfspacing
및 \singlespacing
설정 중 하나입니다. 일반적으로 단락은 단락 끝에서 활성화된 설정으로 조판됩니다.
내부적 으로는 어떤 시점에서 목록에 대한 새 단락을 시작하도록 호출하는 로 quote
구현됩니다 .\list
\par
패치를 사용하면 문제의 코드가 본질적으로 실행됩니다.
\lipsum[66]
{\singlespace\list...\endlist}
여기에는 통화가 \list
포함됩니다 \par
. 이는 LaTeX가 다음 상황과 유사한 것을 본다는 것을 의미합니다.
\lipsum[66]{\singlespace\par}
여기서 단락이 끝나고 전체 단락이 줄 간격 설정이 활성화된 상태로 조판됩니다.그 시점에. 따라서 전체 단락은 단일 간격으로 조판됩니다.
분명히 이것은 우리가 원하는 것이 아닙니다. 한 가지 해결책은 시작하기 전에 단락을 수동으로 끝내는 것입니다 quote
(이것은 이미 질문에서 찾은 내용입니다). 의미상 잘못된 것 같으면 패치에 포함시켜 \par
( quote
어쨌든 실행될) 것을 조금 더 일찍 강제로 적용할 수 있습니다.
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}
\usepackage{setspace}
\onehalfspacing
\AtBeginEnvironment{quote}{\par\singlespacing}
\begin{document}
\lipsum[66]
\begin{quote}
\lipsum[75]
\end{quote}
\lipsum[66]
\lipsum[66]
\end{document}
로드 중이므로 csquotes
실제로 표준 quote
. 그런 다음 에서 제안 csquotes.cfg
하고 표시된 대로 동작을 수정할 수 있습니다.내 대답에게인용문의 글꼴 크기를 변경하는 방법은 무엇입니까?
의미상 더 나은 솔루션을 위해 에서 도입된 공간 수정을 피하기 위해 \singlespacing
설정으로 내부 구현을 사용해야 합니다 .\setstretch {\setspace@singlespace}
\singlespacing
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{setspace}
\onehalfspacing
\makeatletter
\newenvironment{singlequote}
{\quote\setstretch{\setspace@singlespace}}
{\endquote}
\makeatother
\SetBlockEnvironment{singlequote}
\usepackage{lipsum}
\begin{document}
\lipsum[66]
\begin{displayquote}
\lipsum[75]
\end{displayquote}
\lipsum[66]
\end{document}
답변2
출력의 따옴표 간격을 변경하지 않고 코드를 시도하면 앞뒤에 빈 줄이 있습니다. 따라서 그것 은 둘 사이 의 중간 으로 보입니다 \lipsum[66]
.
출력에서 인용문 앞에 추가 공백이 표시되지 않도록 하려면 인용문 앞에 약간의 공백을 두십시오. 예를 들어:
% spacingpob.tex SE 569716
\documentclass[UKenglish]{article}
\usepackage{babel}
\usepackage[autostyle]{csquotes}
\usepackage{lipsum}
\usepackage{setspace}
\usepackage{etoolbox}
%\onehalfspacing
%\AtBeginEnvironment{quote}{\singlespacing}
%\AtBeginEnvironment{quote}{\onehalfspacing\singlespacing}
\begin{document}
\lipsum[66]
\vspace{-0.6\baselineskip}
\begin{quote}
\lipsum[75]
\end{quote}
\lipsum[66]
\end{document}
내 생각엔 당신이 생각하는 것 사이를 구별해야 할 것 같아요.의미론LaTeX와 출력의 비교.