
한자 연습에 도움이 되도록 플래시카드 세트를 만들고 있는데 제가 원하는 형식은 매우 간단합니다. 앞면에는 문자가 있고 뒷면에는 그 의미와 판독값이 있습니다(~에-읽기와군-별도의 줄에 읽음). 나는 flacards
그것을 위해 아주 좋은 문서 클래스를 사용하고 있으며 그것은 잘 작동합니다.
문제는 일부 카드에많은독서의; 너무 많아서 목록을 마무리해야 합니다. 지금은 다음 문자가 맞지 않으면 중단됩니다(이미지의 마지막 4줄).
각 읽기 사이의 공백은 U+3000 IDEOGRAPHIC SPACE( )이며, XeLaTeX에서 해당 문자를 단어 줄 바꿈용 공백으로 처리하여 읽기 도중에 줄이 깨지지 않도록 했으면 합니다. 즉, 결과는 다음과 유사해야 합니다(수동으로 생성한 예).
...그러나 다음 기준을 충족해야 합니다.
- 수동 래핑 없음(카드가 넓어지면 라인이 자동으로 리플로우되어야 함)
- 포장을 위해 제거되는 공간은 다음과 같습니다.~ 아니다렌더링됩니다(위 이미지에서는 렌더링됨).
- 개별 항목 사이에 렌더링된 공백은 표의 문자 공백과 정확히 동일한 너비를 가져야 하지만(글꼴이 변경된 경우에도) 결과 PDF에서 실제 표의 문자 공백 문자일 필요는 없습니다(그러나 다음을 사용하는 것이 좋습니다). 거기에 올바른 문자가 있습니다)
정확한 입력 형식은 고정되어 있지 않으며 원하는 간격을 달성하는 한 원하는 경우 변경할 수 있습니다.
MWE:
\PassOptionsToPackage{a4paper}{geometry}
\documentclass[frontgrid,backgrid]{flacards}
\usepackage{xeCJK}
\setCJKmainfont{MS Gothic}
\renewcommand{\cardtextstylef}{\Huge}
\renewcommand{\cardtextstyleb}{}
\begin{document}
\card{明}{bright, clear\\ メイ ミョウ\\ あ(かり) あか(るい) あか(るむ) あか(らむ) あき(らか) あ(ける) -あ(け) あ(く) あ(くる) あ(かす)}
\end{document}
답변1
몇 가지 질문이 있습니다:
CJK 문자 사이의 줄 바꿈을 방지합니다.
\CJKglue
두 CJK 문자 사이에는 처음에\hskip 0pt plus 0.08\baselineskip\relax
래핑을 활성화 하도록 정의된 문자가 있습니다 .\CJKglue
줄 바꿈을 방지하기 위해 빈 매크로로 재정의할 수 있습니다 .(중국어 문서에만
xeCJK
해당해서 다시 한번 죄송합니다.)(
전후에 줄바꿈을 방지합니다)
. 우리는 이를 왼쪽이나 오른쪽 구두점 전각 문자가 아닌 CJK 표의 문자로 처리해야 합니다. 고급 매크로가 트릭을 수행합니다\xeCJKDeclareCharClass
.xeCJK
전폭 공간(U+3000)을 TeX 글루로 만들어 포장이 가능하지만폐기할 수 있는(TeXbook 14장 참조) TeXnician에게는 이것이 어렵지 않습니다.
전체 작업 예는 다음과 같습니다.
\documentclass[frontgrid,backgrid]{flacards}
\renewcommand{\cardtextstylef}{\Huge}
\renewcommand{\cardtextstyleb}{}
\usepackage{xeCJK}
\setCJKmainfont{MS Gothic}
% Prevent line breaking between CJK characters
\xeCJKsetup{CJKglue=} % or \def\CJKglue{} for old version of xeCJK
% Prevent line breaking before ( and after )
\xeCJKDeclareCharClass{CJK}{`(, `)}
% Define a full-width space to be a \quad, which is a TeX glue
\catcode"3000=\active
\def^^^^3000{\quad}
\begin{document}
\card{明}{bright, clear\\
メイ ミョウ\\
あ(かり) あか(るい) あか(るむ) あか(らむ) あき(らか) あ(ける) -あ(け) あ(く) あ(くる) あ(かす)}
\end{document}