fix(845-2): 단가산출 단위 표시 규칙 한 벌 · 기계 산출근거 겹분수 중간 줄로 나눔

- 단위 규칙 한 벌(common_util_line_stack_unit) — 왼쪽 값 칸 · 식 줄 · 옵션 · 오른쪽 산출근거 · 기계 제어 구역 · 기계 보기가 같이 씀
  · 메타 단위(구분 따름 · 수(…) · 원문 단위 없음) 안 그림 · %(설명) = % · 10^-7 = 10⁻⁷ · 기계 칸 연결 = 기계 표 칸 단위 · 코드 값 쉼표 없음
- 비목 · 금액 줄 = 「단가 원/단위 × (수량 식) 단위 = 금액 원」 · 소계 · 합계 · 계 = 원 · 단가 · 수량 한 덩이(줄 바뀜에 단위 안 떨어짐)
- 기계경비식 겹분수 → 중간 줄(상여 · 휴지 · 손료계수 · common_util_line_stack_frac) · 한 줄 분수 한 층
- 기계 제어 구역 단위 = 칸 밖 바로 뒤 · 기계 보기 오른쪽 = 박기 전 기계 칸 단위
- 휴대폰 폭(560 px 밑) 산출근거 금액 칸 넷 걷음(가로 넘침 0) · 분수 줄 위아래 여유
- 전수 1,520 표시 탓 43,218 → 0 · 기계 겹분수 2 층 넘는 줄 1,040 → 0 · 금액 · 식 · 문서 자료 불변(그리기만)
- 시험 test_845_2_unit_show(차린 줄 글 전수 지킴) · shownUnit 걷음(규칙 한 벌로)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-15 22:44:36 +09:00
co-authored by Claude Opus 5.5
parent 0377e45d6c
commit badc24c0cc
14 changed files with 846 additions and 77 deletions
+30 -7
View File
@@ -378,11 +378,29 @@
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 0 var(--spacing-4);
gap: var(--spacing-4);
padding-inline-start: calc(var(--lstk-depth, 0) * var(--spacing-16));
white-space: normal;
}
/* 845-2 휴대폰 폭 — 금액 칸 넷은 줄 글(「= 843.1 원」) · 아래 합계 상자와 같아 걷고 산출근거 칸을 다 씀(가로 넘침 없음) */
@container (max-width: 560px) {
.lstk-out th:nth-child(n + 2),
.lstk-out td:nth-child(n + 2) {
display: none;
}
}
/* 845-2 분수 줄 — 한글 분자 · 분모가 KaTeX 높이 셈보다 커서 위아래 줄에 닿음 → 위아래 여유 */
.lstk-out .lstk-h:has(.mfrac) {
padding-block: var(--spacing-8);
}
/* 값 칸 묶음 줄 — 칸 사이 간격(줄이 바뀌어도 줄 앞 빈칸 없음) */
.lstk-out tr.packs .lstk-h {
column-gap: var(--spacing-24);
}
.lstk-out tr.head,
.lstk-out tr.item,
.lstk-out tr.total {
@@ -408,11 +426,6 @@
cursor: pointer;
}
.lstk-gap {
display: inline-block;
width: var(--spacing-24);
}
.lstk-pack {
display: inline-flex;
align-items: center;
@@ -487,10 +500,20 @@
.lstk-mctl > .lstk-frow {
display: grid;
grid-template-columns: 7em auto 11em auto auto;
grid-template-columns: minmax(3em, 6em) auto minmax(0, 15em) auto auto;
justify-content: start;
}
/* 845-2 값 칸 + 단위(칸 밖 바로 뒤) — 좁으면 칸이 줄어듦 */
.lstk-mctl > .lstk-frow > .lstk-qty {
min-width: 0;
}
.lstk-mctl .lstk-unit {
flex: none;
white-space: nowrap;
}
.lstk-mctl > .lstk-frow > .lstk-sym {
max-width: none;
}