KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
There is no fear in love; but perfect love casteth out fear.
FrontPage › AMSLaTeX/Hangul

r1.4과 현재 버전의 차이점

@@ -1,115 +1,8 @@
AMSLaTeX 문서에서 한글 사용하기

[[TableOfContents]]
=== HLaTeX ===
==== amsart ko. cls와 HLaTeX의 충돌 문제 (by ChoF) = TeX ===
from KTUGBD:tips
AMSLaTeX 의 `amsart.cls` 에서 HLaTeX을 사용하고자 하는 경우 약간의 문제가 발생합니다. 주로 발생하는 에러는 다음과 같습니다.
1. \maketitle 을 사용할 때 제목과 저자의 이름이 헤딩에 나오는 부분에서 에러 발생
1. \thanks 를 사용할 때 제대로 나오지 않음
위의 두 문제를 해결하기 위해서는 아래와 같은 코드를 `\usepackage{hfont}` 또는 `\usepackage{hangul}` 다음에 넣어 주면 됩니다.
{{{#!vim tex
\makeatletter
\def\markboth#1#2{%
\begingroup
\@temptokena{{#1}{#2}}\xdef\@themark{\the\@temptokena}%
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
\def\thanks#1{\g@addto@macro\thankses{\thanks{#1}}
}
\makeatother
}}}
예를 들어 아래의 코드는 에러 없이 제대로 작동합니다.
{{{#!vim tex
\documentclass{amsart}
\usepackage{hfont}
\makeatletter
\def\markboth#1#2{%
\begingroup
\@temptokena{{#1}{#2}}\xdef\@themark{\the\@temptokena}%
\mark{\the\@temptokena}%
\endgroup
\if@nobreak\ifvmode\nobreak\fi\fi}
\def\thanks#1{\g@addto@macro\thankses{\thanks{#1}}%
}
\makeatother
\begin{document}
\title{Title}
\author{Author1}
\thanks{Thanks1}
\author{Author2}
\thanks{Thanks2}
\maketitle
\section{Section1}
This is a test.
\newpage
\section{Section2}
This is a test.
\newpage
\section{Section3}
This is a test.
\end{document}
}}}
==== maketitle과 헤딩(Running Head)에서 한글 문제 ====
(위의 팁을 이용하면) \thanks{}를 썼을 때 한글이 아무 이상없이 나옵니다. 또
{{{
\title[다각형과 다면체]{다각형의 넓이의 성질과 다면체의 부피의 성질에 관한 연구}
\author[박새미나]{박차고나온노미새미나}
\author[불러도]{불러도 주인 없는 이름이여}
\thanks{감사합니다.}
}}}
으로 했을 때 홀수 쪽의 머릿글(Running Head)에서도 짧은 논문 제목("다각형과 다면체")이 이상없이 나옵니다. 그리고 오류 메시지도 없습니다. 그런데 짝수 쪽 머릿글에서 나와야할 한글 이름은 나오지 않고 달랑 "and"만 나옵니다. 이것도 AMSLaTeX 클래스들의 특성으로 쪽의 중앙에 나와야 하는데 쪽번호와 바싹붙어 나옵니다. 그리고 또 하나 이상한 것은 amsproc 클래스를 쓸 때는 저자들의 한글 이름이 나오는데 amsart 클래스에서는 이름에서 한글만 쏙 빼버립니다. -[Yhchoe]
KTUGContrib:420''''''에서 제시한 방법: HLaTeX의 장절 선언을 AMSLaTeX의 설정보다 이전에 로드해두는 편법.
{{{
\RequirePackage{hangul}
\ksnamedef{partname}{Part}
\ksnamedef{chaptername}{Chapter}
\ksnamedef{sectionname}{Section}
\documentclass{amsart}
\title[타이틀]{긴 타이틀}
\author[저자]{저자이름}
\thanks{Thanks1}
\author[한글이름]{아름다운 한글이름}
\thanks{땡큐}
\begin{document}
\maketitle
\section{한글 절제목}
This is a test. 테스트.
\newpage
\section{Section2}
This is a test.
\newpage
\section{Section3}
This is a test.
\end{document}
}}}
이 방법으로 위의 소스는 문제없이 컴파일되는 것으로 생각됩니다. 근본적인 해결책은 [Lambda]로 컴파일하거나 하는 것이라고 생각합니다마는... 이 방법의 문제점이라면 small capital로 표시되어야 할 AND가 그냥 소문자 and로 titlepage에 나온다는 정도이고, 이것은 필요하다면 수정할 수 있을 것으로 생각합니다. --[Karnes]''
[Karnes] 님의 방법이 훨씬 쉽습니다. 저자가 여럿 있을 때는 그냥 한 곳에 몽땅 넣으면 됩니다. `amsart`와 `amsproc`에서는 아무 이상이 없었습니다. 가장 잘 적용되는 곳은 amsbook 클래스인데
{{{
\RequirePackage{hangul}
\ksnamedef{partname}{단원}
\ksnamedef{chaptername}{마당}
\ksnamedef{sectionname}{마디}
\documentclass[11pt]{amsbook}
}}}
로 하였을 때 유독 chaptername인 "마당"만 나오지 않습니다. \author를 여러 개 넣어도 아무 탈 없습니다.--[Yhchoe]
=== Hangul-ucs ===
DHUcs(a.k.a [Hangul-ucs])로 유니코드 한글을 ams classes에서 사용하는 경우 `\maketitle`이나 난외주, `\thanks` 등의 한글은 전혀 아무런 문제를 일으키지 않는다. 다만 `\uppercasenonmath`라는 매크로 하나를 죽여줄 필요는 있다. 그러므로 preamble에서 다음과 같이 해주는 것으로 충분하다. ---[Karnes]
{{{
\renewcommand\uppercasenonmath[1]{}
}}}
@@ -138,7 +31,8 @@
\skip@34\p@ \advance\skip@-\normalbaselineskip
\vskip\skip@ }
\makeatother
}}}
=== AMSLaTeX 한글 사용시 주의사항 ===
한글이 들어가는 명령어, 환경 등을 정의할 때는 글꼴을 로드한 다음 하여야 합니다. 가령
{{{
\def\refname{참고문헌}



AMSLaTeX 문서에서 한글 사용하기

목차

1 ko.TeX
1.1 amsbook 클래스에서 chaptername의 한글 문제 (Hangul-ucs)
2 AMSLaTeX 한글 사용시 주의사항

1 ko.TeX

유니코드 한글을 ams classes에서 사용하는 경우 \maketitle이나 난외주, \thanks 등의 한글은 전혀 아무런 문제를 일으키지 않는다. 다만 \uppercasenonmath라는 매크로 하나를 죽여줄 필요는 있다. 그러므로 preamble에서 다음과 같이 해주는 것으로 충분하다. ---Karnes
\renewcommand\uppercasenonmath[1]{}

1.1 amsbook 클래스에서 chaptername의 한글 문제 (Hangul-ucs)

Q. <:( amsart 클래스와 amsproc 클래스에서는 \uppercasenonmath라는 매크로 하나를 죽임으로써 거의 모든 문제가 해결되었습니다. 그러나 amsbook 클래스에서는
\def\chaptername{}
\def\partname{}
에 한글을 넣기만 하면 문제가 생깁니다.--Yhchoe

A. amsbook의 \uppercase\expandafter 코드는 ASCII 이외의 코드와 호환성이 없습니다. 즉 영어 이외의 라틴 계열 언어에서조차 문제가 생긴다는 것입니다. amsbook.cls의 버그라고 알려져 있습니다. comp.text.tex에 관련된 대화가 있는데... "불평하는 사람이 없으면 고치는 사람도 없다"는 답변을 누군가 달아두었더군요. \MakeUppercase 또는 \MakeTextUppercase를 사용하도록 고쳐야 합니다.
\makeatletter
\def\@makechapterhead#1{\global\topskip 7.5pc\relax
  \begingroup
  \fontsize{\@xivpt}{18}\bfseries\centering
    \ifnum\c@secnumdepth>\m@ne
      \leavevmode \hskip-\leftskip
      \rlap{\vbox to\z@{\vss
          \centerline{\normalsize\mdseries
              \MakeUppercase{\chaptername}\enspace\thechapter}
          \vskip 3pc}}\hskip\leftskip\fi
     #1\par \endgroup
  \skip@34\p@ \advance\skip@-\normalbaselineskip
  \vskip\skip@ }
\makeatother

2 AMSLaTeX 한글 사용시 주의사항

한글이 들어가는 명령어, 환경 등을 정의할 때는 글꼴을 로드한 다음 하여야 합니다. 가령
\def\refname{참고문헌}
\def\bibname{참고문헌}
\def\listfigurename{그림목록}
\def\figurename{그림}
\def\contentsname{내용}
\newtheorem{thm}{정리}[section]
을 글꼴 로드보다 앞에서 정의하면 출력 파일에서 이상한 글자들이 됩니다.

^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-02-18 00:17:00
Processing time 0.0711 sec