You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
328 lines
6.3 KiB
328 lines
6.3 KiB
/*
|
|
* A4 용지 기준 PDF 출력을 위한 스타일시트 (pdf_style.css)
|
|
*/
|
|
|
|
@page {
|
|
size: A4;
|
|
margin: 20mm 15mm 20mm 15mm;
|
|
@top-left { content: none !important; }
|
|
@top-right { content: none !important; }
|
|
@bottom-left { content: none !important; }
|
|
@bottom-right { content: none !important; }
|
|
@bottom-center {
|
|
content: counter(page) !important;
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans KR", sans-serif;
|
|
font-size: 8.5pt;
|
|
color: #7f8c8d;
|
|
}
|
|
}
|
|
|
|
body {
|
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans KR", sans-serif;
|
|
font-size: 10pt;
|
|
line-height: 1.6;
|
|
color: #333333;
|
|
background-color: #ffffff;
|
|
-webkit-print-color-adjust: exact !important;
|
|
print-color-adjust: exact !important;
|
|
}
|
|
|
|
/* 제목 스타일 */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
color: #111111;
|
|
font-weight: bold;
|
|
page-break-after: avoid;
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 18pt;
|
|
border-bottom: 2px solid #007acc;
|
|
padding-bottom: 4px;
|
|
margin-top: 20px;
|
|
margin-bottom: 12px;
|
|
}
|
|
|
|
h2 {
|
|
font-size: 13pt;
|
|
border-bottom: 1px solid #e1e4e8;
|
|
padding-bottom: 3px;
|
|
margin-top: 16px;
|
|
margin-bottom: 10px;
|
|
}
|
|
|
|
h3 {
|
|
font-size: 11pt;
|
|
margin-top: 12px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
h4 {
|
|
font-size: 10pt;
|
|
margin-top: 10px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
/* 문단 및 리스트 */
|
|
p {
|
|
margin-top: 0;
|
|
margin-bottom: 8px;
|
|
text-align: justify;
|
|
}
|
|
|
|
ul, ol {
|
|
margin-top: 0;
|
|
margin-bottom: 8px;
|
|
padding-left: 20px;
|
|
}
|
|
|
|
li {
|
|
margin-bottom: 3px;
|
|
}
|
|
|
|
/* 구분선 */
|
|
hr {
|
|
height: 1px;
|
|
padding: 0;
|
|
margin: 15px 0;
|
|
background-color: #e1e4e8;
|
|
border: 0;
|
|
}
|
|
|
|
/* 테이블 스타일 */
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-top: 0;
|
|
margin-bottom: 10px;
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
table th, table td {
|
|
padding: 4px 8px;
|
|
border: 1px solid #dfe2e5;
|
|
font-size: 8.5pt;
|
|
word-break: keep-all;
|
|
}
|
|
|
|
table th {
|
|
font-weight: 600;
|
|
background-color: #f6f8fa;
|
|
text-align: left;
|
|
}
|
|
|
|
table tr:nth-child(even) {
|
|
background-color: #f9fbfd;
|
|
}
|
|
|
|
table tr {
|
|
page-break-inside: avoid; /* 표의 중간 행이 반으로 쪼개지는 것만 방지 */
|
|
}
|
|
|
|
/* 인용구 스타일 */
|
|
blockquote {
|
|
padding: 6px 12px;
|
|
color: #6a737d;
|
|
border-left: 0.25em solid #007acc;
|
|
background-color: #f6f8fa;
|
|
margin: 0 0 10px 0;
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
blockquote p {
|
|
margin: 0;
|
|
}
|
|
|
|
/* 코드 블록 (아스키 아트 등 포함) */
|
|
pre, code {
|
|
font-family: "Consolas", "Monaco", "Andale Mono", "Ubuntu Mono", monospace;
|
|
font-size: 8.5pt;
|
|
background-color: #f6f8fa;
|
|
border-radius: 3px;
|
|
}
|
|
|
|
code {
|
|
padding: 0.2em 0.4em;
|
|
margin: 0;
|
|
border: 1px solid #eaecef;
|
|
}
|
|
|
|
pre {
|
|
padding: 12px;
|
|
overflow: auto;
|
|
line-height: 1.45;
|
|
border: 1px solid #e1e4e8;
|
|
word-wrap: normal;
|
|
white-space: pre; /* 아스키 아트 정렬 유지를 위해 강제 줄바꿈 해제 */
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
pre code {
|
|
padding: 0;
|
|
margin: 0;
|
|
background-color: transparent;
|
|
border: none;
|
|
font-size: inherit;
|
|
white-space: inherit;
|
|
}
|
|
|
|
/* 이미지 스타일 */
|
|
img {
|
|
max-width: 100%;
|
|
max-height: 100mm; /* A4 높이의 약 절반 이하로 제한 */
|
|
display: block;
|
|
margin: 15px auto;
|
|
object-fit: contain;
|
|
page-break-inside: avoid;
|
|
border: 1px solid #e1e4e8;
|
|
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
|
}
|
|
|
|
/* 페이지 나누기 요소 */
|
|
.page-break {
|
|
page-break-before: always !important;
|
|
}
|
|
|
|
/* 내비게이션 숨김 (인쇄 시) */
|
|
.nav-link, .nav-links, .back-to-toc, .manual-nav,
|
|
a[href$=".md"]:not(.toc-title a) {
|
|
display: none !important;
|
|
}
|
|
|
|
/* 링크 스타일 */
|
|
a {
|
|
color: #007acc;
|
|
text-decoration: none;
|
|
}
|
|
|
|
a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* 특별 배지 스타일 */
|
|
.badge {
|
|
display: inline-block;
|
|
padding: 2px 6px;
|
|
font-size: 8pt;
|
|
font-weight: 600;
|
|
line-height: 1;
|
|
border-radius: 2px;
|
|
background-color: #e1e4e8;
|
|
color: #24292e;
|
|
margin-right: 4px;
|
|
}
|
|
|
|
/* ==========================================
|
|
표지 (Cover Page) 스타일 (Minimal & Clean)
|
|
========================================== */
|
|
.cover-page {
|
|
text-align: center;
|
|
padding: 70mm 0 30mm 0;
|
|
page-break-after: always !important;
|
|
box-sizing: border-box;
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
min-height: 220mm;
|
|
}
|
|
|
|
.cover-header {
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.cover-title {
|
|
font-size: 28pt !important;
|
|
font-weight: 700 !important;
|
|
color: #1a1a1a !important;
|
|
margin: 0 0 16px 0 !important;
|
|
padding: 0 !important;
|
|
border: none !important;
|
|
letter-spacing: -0.5px;
|
|
line-height: 1.2;
|
|
}
|
|
|
|
.cover-subtitle {
|
|
font-size: 16pt;
|
|
font-weight: 500;
|
|
color: #007acc;
|
|
margin: 0;
|
|
letter-spacing: 2px;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.cover-meta {
|
|
margin-top: 100px;
|
|
font-size: 9.5pt;
|
|
color: #666666;
|
|
letter-spacing: 0.5px;
|
|
border-top: 1px solid #eaeaea;
|
|
padding-top: 20px;
|
|
width: 60%;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
/* ==========================================
|
|
점선 리더 목차 (Dot Leader TOC) 스타일
|
|
========================================== */
|
|
.toc-container {
|
|
padding: 10px 0;
|
|
}
|
|
|
|
.toc-heading {
|
|
font-size: 22pt !important;
|
|
font-weight: 800 !important;
|
|
color: #0f2942 !important;
|
|
border-bottom: none !important;
|
|
padding-bottom: 0 !important;
|
|
margin-top: 10px !important;
|
|
margin-bottom: 24px !important;
|
|
}
|
|
|
|
.toc-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 13px;
|
|
}
|
|
|
|
.toc-item {
|
|
display: flex;
|
|
align-items: baseline;
|
|
font-size: 11pt;
|
|
line-height: 1.5;
|
|
}
|
|
|
|
.toc-title {
|
|
font-weight: 700 !important;
|
|
color: #111827;
|
|
white-space: nowrap;
|
|
padding-right: 6px;
|
|
}
|
|
|
|
.toc-title a {
|
|
color: #111827 !important;
|
|
font-weight: 700 !important;
|
|
text-decoration: none !important;
|
|
display: inline !important;
|
|
}
|
|
|
|
.toc-title a:hover {
|
|
color: #007acc !important;
|
|
}
|
|
|
|
.toc-leader {
|
|
flex-grow: 1;
|
|
border-bottom: 1.2px dotted #4b5563;
|
|
margin: 0 4px;
|
|
position: relative;
|
|
top: -4px;
|
|
}
|
|
|
|
.toc-page {
|
|
font-weight: 700 !important;
|
|
color: #111827;
|
|
padding-left: 6px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
|
|
|