parbox에서 단락 사이의 간격을 조정하는 방법은 무엇입니까?

parbox에서 단락 사이의 간격을 조정하는 방법은 무엇입니까?

내가 LyX에 가지고 있는 것은 다음과 같습니다:

여기에 이미지 설명을 입력하세요

나는 서문에 다음 줄을 추가했습니다.

\global\setlength{\parskip}{20pt}

따라서 나는 모든 줄 사이에 20pt 공백을 기대하고 있습니다. 그러나 이는 Parbox 내에서는 발생하지 않습니다. 내 결과:

여기에 이미지 설명을 입력하세요

질문: 위의 3.과 4. 사이에 20pt 공백을 확보하려면 어떻게 해야 합니까?나는 이것이 전역적으로(즉, 내 문서의 모든 Parbox에 걸쳐) 수행되기를 원합니다.

LaTeX 코드(LyX에서 내보냄):

%% LyX 2.2.3 created this file.  For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{calc}

\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\global\setlength{\parskip}{20pt}

\makeatother

\usepackage{babel}
\begin{document}
1. Hi

2. Hi

\noindent{\fboxrule 3pt\fboxsep 6pt\fbox{\parbox[t]{1\columnwidth - 2\fboxsep - 2\fboxrule}{%
3. Hi

4. Hi%
}}}
\end{document}

답변1

사용자 지정 명령에 다음을 추가할 수 있습니다.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\setlength{\parskip}{20pt}
\let\oldparbox\parbox
\renewcommand\parbox[3][t]{\oldparbox[#1]{#2}{\setlength{\parskip}{20pt}#3}}
\makeatother

편집: 다음 "PS"가 잘못되었습니다: (David의 의견 참조) 추신: parbox의 기본 선택적 매개변수가 인지는 잘 몰랐습니다 t. 그러나 검색해 보니 그것이 사실이라는 것을 알았습니다."굵게" 사이에 있는 문장은 사실이 아닙니다.

내 변명: 방금 "구글"한 결과 다음과 같은 결과가 나왔습니다.

여기에 이미지 설명을 입력하세요

제목이 있는 링크를 보고 \parbox방금 마지막 두 줄에서 위의 잘못된 문장을 읽었습니다...

그래서 교훈을 얻었는데...항상 출처를 다시 확인하세요.Google에서 보는 내용을 '거리'만으로 믿지 마세요.

답변2

나는 이것이 귀하의 질문에 대한 직접적인 대답이 아니며 확실히 과잉이라는 것을 이해합니다. 그러나 텍스트를 이동하지 않고 상자를 그리려면(예: 3과 4가 왼쪽으로 약간 이동함) 항상 Ti를 사용할 수 있습니다.케이Z 오버레이.

\documentclass[english]{article}
\usepackage{calc}
\usepackage{tikzpagenodes}
\usetikzlibrary{fit}
\newcommand{\tikznode}[2]{\tikz[remember picture,baseline=(#1.base)]{\node(#1)[inner sep=0pt]{#2};}}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% User specified LaTeX commands.
\global\setlength{\parskip}{20pt}

\makeatother

\begin{document}
1. Hi

2. Hi

3. Hi\tikznode{3}{\strut}

4. Hi\tikznode{4}{\strut}%
\begin{tikzpicture}[overlay,remember picture]
\node [fit=(current page text area.west|-4.south) (current page text
area.east|-3.north),draw,ultra thick,rectangle]{};
\end{tikzpicture}
\end{document}

여기에 이미지 설명을 입력하세요

단지 이러한 상자를 그리려는 경우 이는 확실히 과도한 작업이지만, 더 멋진 작업을 수행하려는 경우에는 이것이 합리적인 선택일 수 있습니다.

답변3

\parskip당신은 모든 것을 원하는 것 같기 때문에 \parbox:

\documentclass{article}

\newlength{\normalparskip}
\setlength{\normalparskip}{20pt}
\AtBeginDocument{\setlength{\parskip}{\normalparskip}\setlength{\parindent}{0pt}}

\makeatletter
\g@addto@macro{\@parboxrestore}{\setlength{\parskip}{\normalparskip}}
\makeatother

\newcommand{\framedparbox}[2][c]{%
  \noindent
  \begingroup
  \setlength{\fboxrule}{3pt}%
  \setlength{\fboxsep}{6pt}%
  \fbox{\parbox[#1]{\dimexpr1\columnwidth - 2\fboxsep - 2\fboxrule}{#2}}%
  \endgroup
}

\begin{document}

1. Hi

2. Hi

\framedparbox[t]{%
3. Hi

4. Hi%
}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보