문구에 밑줄을 긋거나 취소선을 그어 삭제된 것으로 표시하고 싶을 때 이 페이지에서 이에 대한 도구를 정리합니다. LaTeX에 내장된 \underline{...}은 모든 문서에서 작동하지만 실제로는 수학 명령입니다. 줄을 넘을 수 없으며 투박해 보입니다. 오랫동안 실행되는 텍스트의 경우 ulem 패키지의 줄바꿈 밑줄과 취소선을 사용하세요. 글자 간격과 마커펜 강조 표시를 위해서는 soul 패키지를 사용하세요. 밑줄은 일반적으로 서양식 조판에서 강조 수단으로 사용되지 않습니다. 강조하려면 \emph을 사용하세요(별도 페이지 참조).
기본 제공 \underline 및 해당 제한
\underline{the phrase to underline}라고 쓰면 인수 아래에 선이 그려집니다. 별도 패키지는 필요 없으며 텍스트와 수식 양쪽에서 작동합니다. 사실 이 명령의 본래 자리는 math mode입니다. $\underline{x}$처럼 변수 아래에 선을 긋는 도구입니다. 텍스트에서 사용할 때는 LaTeX가 내용을 수식으로 처리한 상자에 밑줄을 긋고 있다고 생각하면 동작을 이해하기 쉽습니다.
This word is \underline{underlined} in running text.여기에는 두 가지 약점이 따릅니다. 첫째, \underline은 깨지지 않는 상자 하나를 생성하므로 줄 끝에서 분리될 수 없습니다. 밑줄 친 문구가 줄 너비에 맞지 않으면 줄바꿈 대신 오른쪽 여백으로 오버플로됩니다. 짧은 단어 하나는 괜찮지만, 긴 문구나 문장 전체에 밑줄을 긋으면 무너집니다. 둘째, 문자 모양(특히 g 및 p과 같은 디센더)에 대한 규칙의 두께나 위치를 조정하지 않으므로 선이 문자로 잘려 거칠게 보일 수 있습니다.
간단히 말해서 \underline은 "수학에서 기호 아래에 선을 긋는다", "아주 짧은 단어에 빠르게 밑줄을 긋는 것"에는 충분하지만 실행 중인 텍스트에 밑줄을 긋는 데는 적합하지 않습니다. 줄을 나누어야 하거나 깔끔하게 보이도록 하고 싶은 본문 텍스트의 밑줄과 취소선의 경우 아래 ulem 또는 soul을 사용하세요.
ulem — 줄 바꿈 밑줄 및 취소선
Donald Arseneau의 ulem 패키지는 줄 끝에서 적절하게 분리되는 밑줄을 제공합니다. 또한 이중 및 물결 모양 밑줄, 취소선(수평선), 십자선(대각선 해칭), 점선 및 점선 밑줄(삭제 및 교정에 사용되는 전체 선 세트)을 제공합니다. \usepackage{ulem}으로 로드하고 각각을 하나의 인수를 취하는 명령으로 사용합니다.
| 명령 | 효과 |
|---|---|
\uline | 밑줄(줄 바꿈) |
\uuline | 이중 밑줄 |
\uwave | 물결 모양 밑줄 |
\sout | 취소선(단어에 줄을 잇음) |
\xout | 크로스아웃(텍스트 위의 대각선 해칭) |
\dashuline | 점선 밑줄 |
\dotuline | 점선 밑줄 |
\uline{important} \uuline{urgent} \uwave{boat}
\sout{wrong} \xout{removed}
\dashuline{dashing} \dotuline{dotty}두 개의 매개변수로 라인을 조정할 수 있습니다. 깊이(텍스트 기준선에서 경계선까지의 거리)는 길이 \ULdepth이고 두께는 \ULthickness입니다. \ULthickness은 길이가 아닌 매크로이므로 \setlength(\renewcommand{\ULthickness}{1pt})가 아닌 \renewcommand으로 설정합니다. \ULdepth은 \setlength으로 설정된 일반 길이입니다. 기본적으로 현재 글꼴에 맞게 조정됩니다.
패키지도 확장 가능합니다. \markoverwith을 사용하면 어떤 모양이든 반복적으로 겹쳐서 새로운 종류의 선을 정의할 수 있으며, \useunder{underline-command}{font-declaration}{font-command} 선언은 주어진 글꼴 선택 명령에 밑줄을 그어 대체합니다.
중요한 문제 - ulem은 \emph에 밑줄을 긋습니다.
이것은 그것을 모르는 모든 사람을 넘어지게 합니다. ulem을 로드하면 \emph(그리고 어느 정도 \em)은 기본적으로 이탤릭체 대신 밑줄이 그어집니다. 패키지 자체에 따르면 "ulem은 일반적으로 \emph이 강조된 텍스트에서 이탤릭체를 밑줄로 바꿉니다." 강조점을 표시할 때마다 텍스트 아래에 규칙이 그려지고, 밑줄이 가득한 원고를 발견하면 깜짝 놀라게 됩니다. 더 나쁜 것은 \emph을 중첩하면 더 이상 \emph의 일반적인 기울임꼴과 수직 문자가 번갈아 표시되지 않고 더 많은 밑줄이 쌓일뿐입니다.
해결 방법은 표준입니다. [normalem] 옵션을 사용하여 로드합니다. 그런 다음 \emph은 적절한 기울임꼴 동작을 유지하고 \uline과 그 친구를 명시적으로 쓰는 경우에만 밑줄이 그어집니다. 문서 중간을 전환하려면 \normalem 선언을 사용할 수도 있습니다(기본값을 복원하려면 \ULforem). 특별한 이유가 없는 한, 매번 [normalem]과 함께 ulem을 로드하는 것이 가장 안전합니다.
\usepackage[normalem]{ulem}
% \emph stays italic; underline only where you ask:
This is \emph{emphasis}, and this is \uline{underlined}.soul — 글자 간격 및 형광펜
Melchior Franz의 soul 패키지는 다른 도구 제품군입니다. TeX의 하이픈 넣기 기계를 사용하여 문자별로 텍스트를 선택하고 그 사이에서 작동하므로 문자 간격(간격), 밑줄, 줄눈선, 마커펜 강조 표시 등 모두 줄 끝을 가로질러 분리됩니다. 그 이름은 두 개의 중앙 명령인 \so(공백)과 \ul(밑줄)이 혼합된 것입니다. 목적에 따라 다섯 가지 명령을 제공합니다.
| 명령 | 효과 |
|---|---|
\so | 문자 간격(문자 간격) |
\caps | 대문자 및 소형 대문자 실행을 위한 간격 |
\ul | 밑줄 |
\st | 삼진(오버스트라이크) |
\hl | 하이라이트(마커펜) |
색상의 경우 밑줄은 \setulcolor, 취소선은 \setstcolor, 강조 표시는 \sethlcolor로 설정합니다. 기본적으로 강조 표시는 노란색이고 밑줄과 취소선은 검은색입니다. 중요한 점: \hl은 color(또는 xcolor) 패키지가 로드된 경우에만 색상이 지정됩니다 — 패키지가 없으면 \hl이 채워지는 대신 밑줄이 그어집니다. \definecolor으로 자신만의 색상을 만들어서 전달할 수 있습니다.
\usepackage{color,soul}
\definecolor{lightblue}{rgb}{.90,.95,1}
\sethlcolor{lightblue}
% ...
\so{letterspacing} \ul{underlining} \st{overstriking}
\hl{this is highlighted in light blue color}일본어와 같은 비라틴어 스크립트나 악센트 문자를 처리하려면 UTF-8 지원이 필요합니다. 이는 별도의 패키지인 soulutf8에 존재했지만 현재 soul(v3 이상)은 soulutf8을 병합하고 UTF-8 입력을 지원합니다(이전 코어는 soul-ori으로 이름이 바뀌었고 내부적으로 로드되었습니다). 따라서 최근 TeX Live 또는 MiKTeX에서는 soul만 로드하면 UTF-8 문자를 처리할 수 있습니다.
명령은 인수를 한 번에 한 문자씩 분석하기 때문에 안에 들어갈 수 있는 내용에 제한이 있습니다. 주요 규칙은 다음과 같습니다.
- 수식은
$...$로 감싸면 작동하지만, LaTeX 형식\(...\)은 작동하지 않습니다. - 중첩 없음. 하나의
soul명령을 다른 명령 안에 중첩하지 마십시오. 정말 꼭 필요한 경우에는 내부 자료를 상자(예:\mbox)에 먼저 넣고 통과시키세요. - 텍스트를 하나의 단위로 처리하려면 텍스트를
{...}로 묶습니다. 단, 하이픈 넣기를 포함해서는 안 됩니다. 하이픈이 포함된 단어를 그룹화하려면\mbox{...}을 사용하세요. 그러면soul이 내부에 하이픈이 있어도 단일 항목으로 표시됩니다. \ul,\st또는\hl내부에서 합자을 분리하려면{}또는\null(예:\ul{Auf{}lage})을 삽입하세요.\verb, LaTeX 환경, 명령 정의 및 기타 "멋진 항목"은 인수에 나타나지 않을 수 있습니다. 안전을 위해 일반 가로 텍스트를 사용하세요.
무엇을 선택할지 — 그리고 밑줄 그 자체에 대한 단어
대략적인 안내: 수학 기호 아래 선의 경우 내장된 \underline입니다. 본문 텍스트의 줄 바꿈 밑줄, 취소선 및 교정 표시의 경우 ulem(항상 [normalem]과 함께)입니다. 마커펜 강조 표시 또는 문자 간격의 경우 soul입니다. ulem의 \uline 및 soul의 \ul은 모두 깨지기 쉬운 밑줄이고 비슷해 보이지만 문자 간격 엔진 위에 있는 soul은 인수를 더 제한하는 동시에 강조 표시와 문자 간격도 한 곳에서 처리합니다.
일본어 본문 텍스트에 밑줄을 긋는 데에는 추가 주의사항이 있습니다. ulem 및 soul은 서양 텍스트용으로 설계되었으며, 일본어가 많이 포함된 단락에서는 밑줄이 줄 끝에서 깔끔하게 깨지지 않는 것으로 알려져 있습니다(오쿠무라 하루히코 포럼에서 반복되는 주제). 여러 줄의 일본어에 걸쳐 있는 밑줄의 경우 jumoline 및 udline과 같은 전용 패키지가 존재합니다(기본적으로 제공되지 않을 수 있으며 별도 설치가 필요할 수 있음).
마지막 인쇄 메모입니다. 밑줄은 타자기와 손글씨의 잔재이며 서양 본문 텍스트에서는 일반적으로 강조 수단으로 선호되지 않습니다. 조판 전통에서는 이탤릭체, (제한된) 글자 간격 또는 굵은 글꼴을 사용하여 강조합니다. 무언가를 강조하고 싶다면 밑줄 대신 \emph을 사용하고 줄 자체에 의미가 있는 경우에는 밑줄과 취소선을 유지하세요. 교정에서 삭제를 표시하거나 링크 또는 공백 채우기를 표시합니다.
개정 작업흐름
밑줄과 취소선은 완성된 본문 텍스트보다는 교정 및 공동 작업을 위한 도구인 경우가 많습니다. 최종 버전과 마크업된 개정판이 하나의 소스를 공유하는 경우 산문과 행 명령 사이에 교정 매크로를 넣는 것이 더 안전합니다. 제출된 버전에서는 해당 매크로가 비어 있거나 다른 디스플레이로 전환될 수 있습니다.
\usepackage[normalem]{ulem}
\newcommand{\deleted}[1]{\sout{#1}}
\newcommand{\added}[1]{\uline{#1}}
結果は \deleted{古い値} \added{新しい値} とした。- 산문 강조와 혼합하지 마십시오. 강조를
\emph으로 유지하고\deleted및\added와 같은 별도의 매크로 뒤에 교정 줄을 넣습니다. - 최종 버전에서는 제거 가능하도록 만드세요. 제출 전에
\renewcommand{\deleted}[1]{}으로 전환할 수 있는 디자인은 개정 표시가 최종 PDF에 누출되는 것을 방지합니다. - 긴 일본어 단락에 주의하세요. 줄 바꿈 및 금칙이 문제가 발생할 수 있으므로 필요한 경우 일본어 전용 밑줄 패키지 또는 PDF 주석을 고려하세요.
- 인쇄 시 컬러 하이라이트를 확인하세요.
soul하이라이트는 화면에서는 괜찮아 보일 수 있지만 흑백 인쇄에서는 읽기 어렵거나 접근성이 떨어집니다.
개정 표시를 전환 가능하게 만듭니다.
산문에 \sout{...}을 직접 쓴다면 최종 제출 전에 모든 표시를 찾아내야 합니다. 원고가 개정 모드와 최종 모드 사이를 전환할 때 처음부터 스위치로 표시 매크로를 정의하십시오. 그런 다음 검토 PDF에 삭제 및 추가 내용을 표시할 수 있고, 최종 PDF에서는 삭제된 텍스트를 삭제하고 추가 내용을 유지할 수 있습니다. 모두 한 곳만 변경하면 됩니다. 최종 모드 PDF 검사를 제출 체크리스트에 추가하여 스위치를 잊어버리지 않도록 하세요.
\usepackage[normalem]{ulem}
\newif\ifshowrevisions
\showrevisionstrue % final: \showrevisionsfalse
\newcommand{\deleted}[1]{\ifshowrevisions\sout{#1}\fi}
\newcommand{\added}[1]{\ifshowrevisions\uline{#1}\else #1\fi}이런 형태로 몸체는 \deleted{old text}과 \added{new text}의 의미를 유지합니다. 공동 작업에서는 이유와 이름이 PDF 주석에 있는지 아니면 소스 차이점에만 있는지도 결정하세요. 대사는 수정 중에 유용하지만 완성된 산문에서는 시각적으로 큰 노이즈이므로 원고 작업 흐름의 최종 모드 전환 부분을 만드세요.