2010-02-07 6 views
4

나는 러시아어로 된 다국어 TeX 문서를 주로 가지고 있지만 독자가 국제 용어에 익숙해 지도록하기 위해 영어로 몇 가지 용어를 괄호 안에 포함합니다. 예를 들어 구러시아어 텍스트의 영어 단어 하이픈 넣기

Два неотъемлемых свойства языка программирования - синтаксис (구문) и семантика (의미). 단순히 프로그래밍 언어의

두 속성을 의미

는 구문과 의미입니다.

보인다

같은

Два неотъемлемых свойства языка программирования --- \ textit {синтаксис} (\ textit {\ selectlanguage {영어} 구문 \의 selectlanguage {러시아어}}) и \ textit {семантика} (\ textit {\ selectlanguage {영어} 의미 \ selectlanguage {러시아}}).

나는 또한 \ usepackage [영어, 러시아어] {바벨} 있습니다.

하이픈 넣기 작업을하기 위해 \ selectlanguage를 각 영어 단어에 두 번 사용해야하기 때문에 코드가 너무 복잡해 보입니다. 텍 그들이 라인의 끝에 나타날 때 영어 단어를 하이픈 수 없기 때문에이 없으면 나는

너무 많은 \ hbox에 몇 ...

메시지를 얻을.

더 좋은 해결책이 있습니까? 알렉세이 Malistov에 대응


.

MacTeX 분포는 language.dat 파일 파일

  • /usr/지방/texlive/2009/TEXMF - 거리/소스/일반/바벨
  • /usr/지방/texlive/2009의 몇 가지를 가지고/TEXMF - 거리/문서// 바벨 일반적인
  • /usr/지방/일반/설정
  • /usr/지방/texlive/2009/TEXMF-VAR/텍스/일반/설정/texlive/2009/TEXMF/텍스
  • /usr/local/texlive/2009/texmf-dist/tex/lambda/config

어느 것을 편집해야할지 모르겠습니다. 아마도 처음 두 가지 중 하나 일 것입니다.그들은 어느 하나를

% File : language.dat 
% Purpose : specify which hypenation patterns to load 
%   while running iniTeX 
=USenglish 
american ushyphen.tex 
=english 
UKenglish ukhyphen.tex 
=british 
french frhyphen.tex 
dutch nehyph2.tex 
german dehypht.tex 
ngerman dehyphn.tex 

동일하지만?

또한 initexmf 명령이 없습니다. 인터넷 검색을 통해 아날로그가 updmap-sys라는 사실을 알게되었습니다. 하지만 확실하지 않습니다 ... 저는 TeX 설치를 망칠 까봐 두려워요. 제발, 제게 올바른 방향을 알려주세요.

+0

모든 파일'language.dat'을 변경해야한다고 생각합니다. –

답변

1

오히려 두 번 \selectlanguage{}를 사용하는 것보다, 당신은 otherlanguage 환경, 또는 매크로 \foreighlanguage 중 하나를 사용할 수 있습니다

Два неотъемлемых свойства языка программирования --- \emph{синтаксис} 
(\foreignlanguage{english}{\emph{syntax}}) и \emph{семантика} 
(\foreignlanguage{english}{\emph{semantics}}). 

영어 용어를 자주 사용하는 경우 매크로를 정의 할 수 있습니다.

\newcommand{\englishterm}[1]{% 
    \foreignlanguage{english}{\emph{#1}}} 
+0

마지막으로 나는이 대답을 받아 들였다. 그건 그렇고 아마 뭔가 매크로가 잘못되었습니다. 내 경우에는 작동 예제가 \ newcommand {\ englishterm} [1] {\ foreignlanguage {english} {\ emph {# 1}}}처럼 보입니다. 어쨌든 언급 \ foreignlanguage 및 매크로 주셔서 감사합니다. 그리고 같은 문제를 가진 사람들을위한 또 다른 일 : \ sloppy 명령은 매우 유용 할 수 있습니다. – Wildcat

+0

죄송합니다. 죄송합니다. []가 맞습니다. :) –

1

모든 영어 단어에 임의의 하이픈 (\-)을 적절하게 추가 할 수 있습니다.

또는 textit과 언어 선택 모두를 처리하는 환경을 정의 할 수 있습니다.

Два неотъемлемых свойства языка программирования --- \textit{синтаксис} 
({\textit{\selectlanguage{english}syntax}}) и \textit{семантика} 
({\textit{\selectlanguage{english}semantics}}). 

나는이 권리를 테스트 할 수 없습니다 :

+0

+1 :하지만 왜 환경입니까? Qn은 가로 모드에서 사용법을 인용합니다. '\ def \ russeng # 1 # 2 {# 1 (\ textit {\ selectlanguage {english} 구문 \ selectlanguage {russian}})}}'이 트릭을 훨씬 덜 격렬하게 할 것입니다. –

+0

Anon, 임의 하이픈을 언급 해 주셔서 감사합니다. – Wildcat

1

나는 \selectlanguage 당신이 부분을 둘러싸 할 수 있도록 로컬 범위를 구분 중괄호, 영어가되고 싶어요, 일반적인 범위 규칙을 준수해야한다고 생각합니다 그래도 작동하지 않는다는 것을 알게되면 사실을 알리면 기쁘 겠지만이 답변을 수정하거나 삭제할 수 있습니다.

+1

감사합니다, Svante! 잘 작동합니다. – Wildcat

2

영어와 러시아어 하이픈을 결합해야합니다.

ruseng ruenhyph 
=russian 
=english 

을 그리고 모든 형식의 파일을 다시 컴파일 : 다음 추가, 파일 language.dat 파일을 변경

initexmf --dump 

내가 MikTeX을 사용하여 추가합니다. 네가 뭘 정확히해야하는지 모르겠다. 나는 시도하고 실험 할 것이다.

  1. 영어 및 러시아어 하이픈이 들어있는 "새로운 언어 ruseng"을 추가해야합니다. 그러면 \setlanguage 매크로가 필요하지 않습니다. 그것은 나를 위해 아주 잘 작동합니다. 나는 러시아어와 영어 단어를 사용하며 \setlanguage을 사용하지 않습니다.

  2. 형식 파일을 다시 컴파일해야합니다. MikTeXinitexmf 명령을 제공합니다. MacTeX에 대한 비슷한 명령이 있다고 확신합니다. 당신의 예에서와 같이 인라인 변경,

    \begin{otherlanguage}{english} 
        Hello world 
    \end{otherlanguage} 
    

    또는 : 스위치이기 때문에

+0

Ooops. MacTeX를 사용한다고 언급하지 않았습니다. 그 죄송합니다. 내 메시지에 몇 가지 정보를 추가했습니다. – Wildcat

+0

마침내 만들었습니다. 내가 사용한 명령은 "sudo texconfig init"이다. 감사. – Wildcat

관련 문제